范围样式影响BEM中的块和元素

时间:2018-08-08 10:32:50

标签: html css bem

我从BEM documentation可以读到

  

块可以嵌套

我了解到Blocks应该是具有Elements创建的内部结构的可重用组件,使它们在某种意义上是隔离的,但是如果我有例如我需要将Button BlockText Block一起使用。 Text块不会声明颜色(这是说明我的观点的简单示例,但可以是任何CSS属性),因此受Button的影响:

<div class="button">
  <div class="button__body">
    <div class="text">
      <span class="text__icon">
        
      </span>
      <span class="text__body">
        Hello
      </span>
    </div>
  </div>
</div>

和CSS:

.button {
  font-size: 24px;
  font-weight: bold;
  background-color: lightgreen;
  color: orange;
}
.button__body {
  padding: 10px;
}

.text {}
.text__icon {
  margin: 0 15px;
}
.text__body {
  font-family: sans-serif;
}

问题:BEM如何处理嵌套块上的CSS效果?

是否应该将所有normalize.css用作基础元素,因为我们不知道将来Block会在哪里使用以及它们的行为。

1 个答案:

答案 0 :(得分:1)

  

是否应该将所有normalize.css元素用作基本元素,因为我们不知道将来将在何处使用块以及它们的行为方式。

可以,但是信任父母比不信任父母更有效。因此,通常,应避免在作为其他块的祖先的DOM元素上使用继承的属性(font-sizefont-weightcolor)。当然,除了您真正决定以这种方式工作的块。