css - 您应该在使用 BEM 时设置元素样式还是应该添加额外的类

标签 css sass bem

使用 BEM 时更合适的方法是什么? 我们是否允许不向元素添加额外的类并设置元素本身的样式

<section class="news-section">
  <a>link</a>
</section>


.news-section {
  a {
    color: blue;
  }

}

或者我们是否必须为所有元素添加额外的类并设置这些类的样式?

<section class="news-section">
  <a class="news-section_link">link</a>
</section>

.news-section {
  &_link {
    color: blue;
  }

}

最佳答案

Are we allowed to not add extra classes to elements and style the elements themselves

没有。

使用 BEM,您必须始终使用 CSS 类:

In HTML, BEM entities are represented by the class attribute. (bem.info)

作为对这种刚性的返回,BEM 将为您带来:

  • 可扩展性,因为 block 可以无限制地嵌套;
  • 灵 active ,因为 CSS 选择器与 HTML 标记松散耦合。

关于css - 您应该在使用 BEM 时设置元素样式还是应该添加额外的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49901120/

相关文章:

html - 如何根据BEM命名概念格式化html?

css - 如何使文本与图像右对齐?

html - #{} 不适用于 ruby​​ on rails

css - 有没有办法将我的样式用作 react 中的外部 css 文件?

css - 简单的 flex 盒网格溢出适合行高

css - 与 BEM 修改器混淆

bem - 我想知道 rscss 和 bem 的区别

css - 如何在 CSS 中使用 SVG 符号?

javascript - div 的流体间距

css - 使用多个 sass 映射构建单个选择器