Все мои компоненты вёрстки пишутся на БЭМ, каждый новый блок я начинаю примерно с такого кода:
.footer{
width: 100%;
position: relative;
&__plate{
position: relative;
z-index: 3;
@extend %plate;
}
}
По идее стили для footer__plate должны компилироваться с вложенностью:
.footer{
width: 100%;
position: relative;
}
.footer .footer__plate{
position: relative;
z-index: 3;
...
}
Но компилятор почему-то делает так:
.footer{
width: 100%;
position: relative;
}
.footer__plate{
position: relative;
z-index: 3;
...
}
Я заметил это недавно - оно особо не мешает, ибо БЭМ классы никогда не повторяются. Однако тем не менее это отходит от правил методологии. Ведь если в каком-то левом блоке появтися footer__plate, то стили к нему применятся. К тому же частенько приходится наследовать элементы каркасов, которые повторяются. Я выношу их в тихий класс, чтоб сам элемент каркаса не падал в компил. Если я наследую элемент каркаса с модификатором в элемент блока приходится пользоваться !important как раз из-за этого недочёта. Есть ли способ сказать компилятору что надо создать вложенность, если она есть в коде независимо об амперсанда?