案例Notification 组件

BEM 是一种书写 CSS 的规范,是由 Yandex 团队提出的一种前端 CSS 命名方法论。其目的是为了明确 CSS 作用域,确定相关 CSS 优先级,分离状态选择器和结构选择器。

BEM分别是指:

B:表示一个块元素,比如一个 Modal 弹窗组件、一个 Button 组件,都可以用一个块来表示。
E:表示一个子元素,存在于块元素之内,例如 弹窗组件的title、footer。
M 表示修饰符或者状态,例如 Button 组件的选中态、销毁态。

BEM的写法定义

Block 的块元素会直接表示:.block。
Element 的子元素类型会由双下划”“线表示,并且嵌套进 block 元素后:.blockelement。
Modifier 的修饰符则会由中划线表示”-“, 并嵌套在 块元素,或者子元素之后:.block-modifier 或.block__element-modifier。

CSS命名规范(less) - 图2

  1. .sten-notification {
  2. // xxx
  3. &__title {
  4. // xx
  5. }
  6. &__sub {
  7. // xx
  8. }
  9. &__close {
  10. // xx
  11. }
  12. &__icon {
  13. // xx
  14. &-error {
  15. //xx
  16. }
  17. &-sucess {
  18. //xx
  19. }
  20. &-info {
  21. //xx
  22. }
  23. &-warning {
  24. //xx
  25. }
  26. }
  27. }