ShadowOfCasper
@ShadowOfCasper
Middle User Interface Web Developer

Почему амперсанд не компилирует вложенность?

Все мои компоненты вёрстки пишутся на БЭМ, каждый новый блок я начинаю примерно с такого кода:
.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 как раз из-за этого недочёта. Есть ли способ сказать компилятору что надо создать вложенность, если она есть в коде независимо об амперсанда?
  • Вопрос задан
  • 733 просмотра
Решения вопроса 1
dom1n1k
@dom1n1k
Все работает так, как и должно. Откуда взято это "по идее"?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект