Open alyonafomenkova opened 4 years ago
А у нас же требование по БЭМу именовать, там в целом вложенность и получается максимум двух уровней, так как есть блок и есть элемент. Правда, у нас это явно нигде не описано, если я правильно помню
Это ограничение уже заложено в принципы БЭМ, поэтому мне кажется, что отдельно его добавлять нет смысла
В стандартах же не просто сказано следовать БЭМ, но и подробно описаны принципы, правила именования и т.д. Я считаю, что и про вложенность упомянуть не будет лишним.
В стандартах же не просто сказано следовать БЭМ, но и подробно описаны принципы, правила именования и т.д. Я считаю, что и про вложенность упомянуть не будет лишним.
А вот тут ведь косвенно об этом идет речь: Не должно быть стилей, которые бы влияли на другие блоки любым способом;
В стандартах же не просто сказано следовать БЭМ, но и подробно описаны принципы, правила именования и т.д. Я считаю, что и про вложенность упомянуть не будет лишним.
А вот тут ведь косвенно об этом идет речь: Не должно быть стилей, которые бы влияли на другие блоки любым способом;
Я привела плохой пример к issue и возможно, увела мысль в другую сторону. Лучше такой пример:
.block {
display: block;
&__description {
font-size: 14px;
&_color_red {
color: red;
}
}
}
Т.е. я имела ввиду ограничение на вложенность внутри одного компонента. В данной случае финальная вложенность будет такой: .block .block__description .block__description_color_red
Если речь про итоговый скомпилированный селектор, то там не будет вложенности
Если речь про итоговый скомпилированный селектор, то там не будет вложенности
На самом деле там уже неактуально. Тут правило именно про читаемость и поддерживаемость, так что там именно про исходный код :)
.block .block__description .block__description_color_red
— а тут я ксттаи не запрещал бы третий уровень, потому что модификаторы по сути почти те же псевдоклассы, просто состояние того же элемента показывают
Я читала, что хорошей практикой считается вложенность селекторов не больше двух уровней, т.к. большая вложенность усложняет читабельность и поддержку кода.
Неправильно. Вложенность больше двух уровней
Правильно. Псевдоэлменты, псевдоселекторы, родственные и соседние селекторы не влияют на вложенность.