@ Dejan.S我不是BEM的大风扇(但这是另一个咆哮;-)。然而,如果你正在使用BEM我觉得嵌套将有助于说明层次和期待什么
SCSS:
.selector {
// selector styles
color: red;
// default selector block style
&__block { color: green; }
// selector variant selector block styles
&.foo &__block { color: blue; }
&.bar &__block { color: yellow; }
}
CSS输出:
.selector { color: red; }
.selector__block { color: green; }
.selector.foo .selector__block { color: blue; }
.selector.bar .selector__block { color: yellow; }
HTML:
<div class="selector">
Selector <!-- red -->
</div>
<div class="selector">
Selector <!-- red -->
<div class="selector__block">
Selector Block <!-- green -->
</div>
</div>
<div class="selector foo">
Selector <!-- red -->
<div class="selector__block">
Selector Foo Block <!-- blue -->
</div>
</div>
<div class="selector bar">
Selector <!-- red -->
<div class="selector__block">
Selector Bar Block <!-- yellow -->
</div>
</div>
由于某种原因,这个投票得票?我同意Tibo(解决方案2) - 不要过分复杂的东西 –
嵌套BEM通常是过于复杂的事情。如果你需要声明'&.another-selector&__ block',那么解决方案二是一个很好的解决方案,如果你有一个真正的项目被维护而不是一个hello世界,那么不是那么简单吗? –
这是一个维护任务。不能重新编写代码。 只是想组织它。 无论如何,这个解决方案是好的,经过一番思考,我同意在这里嵌套太多是不好的。 谢谢 –