bem不是什么开发工具,它只是一个命名方法。bem的三个字母分别代表block,element,modifier,即块,元素和修饰词。bem规定使用一个单词表示完整的信息。用一个很形象的例子来说明(非原创)bem的优点,首先看下面的4个单词:
person__handperson--female__handperson__hand-leftpeople--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插件,图标,代码高亮等特性。