我使用的Bem的习惯

Posted ww01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我使用的Bem的习惯相关的知识,希望对你有一定的参考价值。

在基于BEM命名思想的基础上,我整理一些实用的点:

BEM,B即block(块),E即element(元素),M即modifier(修饰符)

块:最顶层,可包含块和元素

元素:被块包含,通常为最终被包含项,即无子代,当然,也有例外,它有时也会包含其他,如:

<div class="media">
  <img src="logo.png" alt="Foo Corp logo" class="media__img--rev">
  <div class="media__body">
    <h3 class="alpha">Welcome to Foo Corp</h3>
    <p class="lede">Foo Corp is the best, seriously!</p>
  </div>
</div>

应注意的,它内部的东西class单独命名,最好不要有层级关系

修饰符:可修饰块和元素,表示一种状态

 

注意,不是所有时候都用BEM,当你觉得一个DOM结构符合使用BEM的条件时,你就可以用

完整的class名结构如下:

block-name__element-name--modifier

以上是关于我使用的Bem的习惯的主要内容,如果未能解决你的问题,请参考以下文章

使用单个片段显示UI而不是活动是一种好习惯吗?

使用 BEM 时命名包装器元素类

SMACSS 和 BEM:如何在模块中定位模块?

使用BEM修饰符类

在 Sass 中匹配多个 BEM 修改器

命名 BEM 子块 [重复]