bem
不是什么开发工具,它只是一个命名方法。bem的三个字母分别代表block
,element
,modifier
,即块
,元素
和修饰词
。bem规定使用一个单词表示完整的信息。用一个很形象的例子来说明(非原创)bem的优点,首先看下面的4个单词:
person__hand
person--female__hand
person__hand-left
people--female__hand--left()
即使是完全不了解bem的人,也可以一眼看出来,第1个单词描述了一个人的手,第2个单词描述了一个女性的手,第3个单词描述了一个人的左手,第4个单词描述了一个女性的左手。而没有采用bem的css代码好像下面这样:
.person {}
.hand {}
.female {}
.female-hand {}
.left-hand {}
它的可读性就大大降低,这样的代码也非常容易造成混乱,让其他开发人员不知所措。
简单来说,bem采用了一下命名规范:
--
符号的后面表示修饰词,如person--female
,hand--left
__
符号的后面表示子元素,如person__hand
- 块,元素和修饰词采用小写加连字符(
-
)链接的写法,如apple-juice
我花了两天时间将nojs
主题的代码改为bem风格,并且把整体样式再次恢复到以前的精简的风格,还删除了可有可无的katex
插件,图标,代码高亮等特性。