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-primary、el-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>