【发布时间】:2017-04-13 18:35:43
【问题描述】:
我正在使用 SASS 方便的 & 符号将 BEM 样式的修饰符添加到我的类中:
.box {
display: inline-block;
width: 100px;
height: 100px;
background: magenta;
&--selected {
background: cyan;
}
}
我正在探索只需将一个类应用于我的元素的可能性(例如:<div class="box--selected">...</div> 而不是<div class="box box--selected">...</div>)。我想避免使用@extend,它的网络太广了。目前我正在使用 mixins,这很好,但是对于每个带有修饰符的类来说使用起来有点冗长。
我真正想做的是让&--selected 继承所有父机箱的属性,仅父机箱 - 即忽略粗心的开发人员可能插入的.box 的任何其他类定义。
【问题讨论】:
-
允许修饰符扩展所有属性并不是一个好主意。你的输出 css 文件会越来越大,你有更多的修改。如果元素应该有几个修饰符呢?
-
@3rdthemagical 非常有意义。 BEM 实际上建议您同时使用基类和修饰类 - 这更像是一个思想实验/功能难题。