CSS BEM规范

286 阅读1分钟

CSS BEM规范

BEM - Block Element Modifier(块元素编辑器)是一个很有用的方法,它可以帮助你创建可以复用的前端组件和前端代码。
BEM是Block、Element、Modifier的缩写。

  • Block,代表一个独立的块级元素,可以理解为功能组件块。一个Block可以理解为一个独立的功能区块。
  • Element,是Block的一部分,不能独立使用。所有的Element都是与Block紧密关联的。例如一个带有icon的输入框,那么这个icon就是这个输入框Block的一个Element,脱离了输入框Block,那么这个icon就没有意义。
  • Modifier,是用来修饰Block或Element,表示block或element在外观上或行为上的改变。例如输入框Block当鼠标悬浮时边框高亮,那么这个高亮的效果就用Modifier实现。

BEM命名

  • 尽量只使用类名选择器,不要使用tag或id选择器
  • 使用小写字母、数字或-,多个单词描述时采用-连接,例如el-input
  • 使用两个_来连接Block或Element,Block__Element,例如el-input__icon
  • 使用两个--来连接Modifier和Element或Block,Block__Element--modifier或Block--modifier,例如el-input--color-primaryel-input__icon--size-small

例如:

<form action="" class="form form--theme-xmas form--simple">
  <input type="text" class="form__input">
  <input type="submit" class="form__submit form__submit-disabled">
</form>

参考🔗

  1. BEM 官网
  2. CSS BEM规范及语义化版本