这让我困惑了一段时间。
我们使用 Sass (SCSS) 并在 lib-sass 上实现类似 BEM 的命名约定。
因此,例如,我们有:
.description {
.title {
color: red;
}
}
并且可能description--special
想要执行以下操作:
.description {
.title {
color: red;
}
&--special {
.title {
color: blue;
}
}
}
自然会出现特异性问题,因为预期用途是:
<div class="description description--special"></div>
有人可以提出一种足够优雅的方法吗?
当前的“最佳”建议是这样做:
.description.description--special {
.title {
color: blue;
}
}
因为,当然,至少在lib-sass中,这是行不通的:
.description {
.title {
color: red;
}
&.&--special {
.title {
color: blue;
}
}
}
这也不是:
.description {
&root: &;
.title {
color: red;
}
&.#{&root}--special {
.title {
color: blue;
}
}
}