Day 2 - BEM
BEM 命名规范
BEM 是什么?
BEM:
- 来源:Yandex 团队提出的一种前端 CSS 命名方法论
- 缩写:块(Block)、元素(Element)、修饰符(Modifier)的简写
- 优点:作为一种简洁的命名约定,有利于团队协作 —— 让你的前端代码更容易阅读和理解,更容易协作,更容易控制,更加健壮、明确,以及更加严密
- 缺点:命名方式长而难看
符号说明
--
双中划线:修饰器-
单中划线:连字符__
双下划线:子元素
_
单下划线?—— 无(有些规范会拿来当双下划线使用)
用法:
block--modifier
block__element
block__element--modifier
long-block-name__element--modifier
block__long-element-name--modifier
block__element--long-modifier-name
使用示例
DEMO 1:
<form class="form form--theme-xmas form--simple">
<input class="form__input" type="text" />
<input
class="form__submit form__submit--disabled"
type="submit" />
</form>
/* block */
.form { }
/* block--modifier */
.form--theme-xmas { }
/* block--modifier */
.form--simple { }
/* block__element */
.form__input { }
/* block__element */
.form__submit { }
/* block__element--modifier */
.form__submit--disabled { }
DEMO 2:
.article {
max-width: 1200px;
/* block__element */
&__body {
padding: 20px;
}
/* block__element */
&__button {
padding: 5px 8px;
&--primary {background: blue;}
&--success {background: green;}
}
}