【发布时间】:2017-11-28 21:05:57
【问题描述】:
我正试图围绕在父类中编写 BEM 修饰符规则的正确方法展开思考。我一直在使用 SASS 的@extend,但觉得这样做是错误的。这就是我的意思:
假设我有一个看起来像这样的.form 类:
<div className="form--inverse">
.form
background-color: $white
color: $black
...
&__label
...
&__input
...
然后我想添加一个名为 .color-inversed 的修饰符,如下所示:
&--color-inveresed
@extend .form // this is my question. Read on.
background-color: $black
color: $white
并将其嵌套在 .form 类中:
.form
&__label
&__input
&--color-inversed
...
我真的应该是@extending .form 在--color-inversed 里面吗?这样做感觉不对,因为最终的 CSS 会因所有通过其修饰符扩展的元素的重复规则而变得臃肿。
然而,如果我不扩展它,div class='form--color-inversed 将完全忽略所有.form 规则。
【问题讨论】: