Skip to content

BEM

BEM命名规范

BEM代表 “块(block),元素(element),修饰符(modifier)”,我们常用这三个实体开发组件。

block 代表更高级别的抽象或组件
block__element 代表 block 的后代,用于形成一个完整的 block 的整体
block--modifier 代表 block 的不同状态或不同版本

css
.block {}
.block__element {}
.block--modifier {}
.block__element--modifier {}


在选择器中,由以下三种符号来表示扩展的关系:

css
-   中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号。
.we-button {}
__  双下划线:双下划线用来连接块和块的子元素
.we-modal__content {}
--  双中划线:单下划线用来描述一个块或者块的子元素的一种状态
.we-button--active {}
.we-modal__content--active {}

与less或者scss结合

less
.block {
    &--modifier {
    }
    &__element {
        &--modifier {
        }
    }
}

优势

  • 样式隔离,避免 css 样式污染

  • 代码更易覆盖

  • 代码更易读