BEM:如何确保块中的CSS值覆盖另一个块中定义的属性?

时间:2017-07-27 03:35:02

标签: css sass override bem

我正在使用BEM,并且在从一个块获取属性以覆盖另一个块中的样式时遇到问题。我知道有些人可能会建议为.button添加修饰符,但有些情况下需要将某些属性应用于单个页面,因此不值得添加整个nother修饰符。

这是一个例子,只是为了表明我的问题:

.button {
  padding-left: 0;
}

现在,当我向左边添加一个填充时,它会获得padding-left: 0;,而不是.my-block下定义的我想要使用的值。

.my-block {
  &__button {
    padding-left: 5px;
  }
}

padding-left: 5px;相比,确保应用padding-left: 0;的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

我假设您使用混音,以便标记看起来像这样:

<button class="button my-block__button">

如果是这种情况,您需要确保捆绑中的订单(.button的样式应始终在.my-block__button之前)。

BEM Platform中,我们使用deps system为我们提供了保证。