美文网首页
BEM学习小结

BEM学习小结

作者: Bella430 | 来源:发表于2017-09-15 00:38 被阅读0次

BEM顾名思义是由块(Block)、元素(Element)和修饰符(Modifier)这三个不同组成的。

1)即是通常所说的 Web 应用开发中的组件或模块。每个块在逻辑上和功能上都是相互独立的;

2)元素是块中的组成部分。元素不能离开块来使用。BEM 不推荐在元素中嵌套其他元素;

3)修饰符是改变某个块的外观的标志。


目前来说,比较流行的是由 Harry Roberts 提出的命名规范,该命名规则的原则如下:

1)BEM 实体名称全部是小写字母或数字。名称中的不同单词用单个连字符(-)分隔。

2)BEM 元素名称和块名称之间通过两个下划线(__)分隔。

3)布尔修饰符和其所修饰的实体名称之间通过两个连字符(--)来分隔。不使用名值对修饰符。

让我们来看几个BEM的例子:

.person{}

.person__hand{}

.person--female{}

.person--female__hand{}

.person__hand--left{}

顶级块是"person",它拥有一些元素,如"hand"。一个人也会有其他形态,比如女性"female",这种形态进而也会拥有它自己的元素。

一个head模块可以包含多个块,如 logo块(logo)、搜索模块(search-form)、导航模块(menu)。其中搜索模块又有两个元素,输入框(search-form__input)和按钮(search-form__btn);这时候如果搜索模块的按钮需要一个禁止点击的行为状态,那还可以通过修饰符来表现命名比如:search-form__btn--disabled。

那从上面的例子我们就可以很清楚的看出来采用BEM命名规范有几个好处:

1)首先是命名识别度高,结构清晰。element 和 modifier 与 block 之间的从属关系,可以从名称上就一目了然的区分。

2)其次,命名隔离性好。每一个 Block 都有一个独立的空间,很好的控制了对其他元素的污染。

3)再次,良好的扩展性。如果新的 block 只是和原来的 block 有不同的皮肤颜色或者状态,那么,只需要再创建一个新的 modifier。

相关文章

  • BEM学习小结

    BEM顾名思义是由块(Block)、元素(Element)和修饰符(Modifier)这三个不同组成的。 1)块即...

  • BEM小结

    所谓BEM,其实是三个单词的缩写:Block(模块)、Element(元素)、Modifier(修饰符)。 1....

  • CSS命名规范 BEM

    通过阅读Element-UI源码来分析学习BEM规范, 使用BEM规范语义化更加鲜明,阅读更容易理解,意思是 块,...

  • BEM(CSS命名规范)

    在Web项目中规范css命名还是很有必要的,BEM传送门。 通过阅读Element-UI源码来分析学习BEM规范,...

  • 学习笔记《BEM》

    BEM 是 Yandex 提出的一种 CSS 命名法,初衷是为了解决CSS命名冲突,但是会牺牲一点阅读性,配合 S...

  • BEM规范学习

    最近导师推荐的css命名规范,大概看了一下,感觉还不错,以后可以试试,方便自己管理代码然后还做了一些笔记,帮助自己...

  • 【译】前端BEM命名方法论之三:命名惯例

    【译】前端BEM命名方法论之一:BEM 官方简介文档【译】前端BEM命名方法论之二:BEM中的重要概念 使用 BE...

  • BEM--CSS命名规范

    什么是BEM? BEM代表块(Block),元素(Element),修饰符(Modifier)。BEM是一种书写C...

  • CSS命名——BEM

    前言 详情见参考,下面的只是部分摘要 BEM是什么 BEM是一种CSS命名规范。BEM代表 “块(block),元...

  • 【译】前端BEM命名方法论之二:BEM中的重要概念

    【译】前端BEM命名方法论之一:BEM 官方简介文档【译】前端BEM命名方法论之三:命名惯例 重要概念 Block...

网友评论

      本文标题: BEM学习小结

      本文链接:https://www.haomeiwen.com/subject/wmvjsxtx.html