在定义“类”时,“类名必须以英文字母或句号开头,不可包含空格或其它符号”,当你命名有错时,DW会提示你的(在CSS面板里新建CSS样式时)。还有,当你的类样式名和HTML的标签名一样时,也会提示你(比如说一个类取名为body),提示为:“body是标准HTML标签,你确定要把它作类名吗?”如果这样命名,倒是不一定会出问题,但是既然DW提示了,就最好不要这么命名。
至于给ID或标签还有复合内容加上CSS,这个是要看你给哪个元素,怎么的标签之类的问题来定了,相对命名宽松一些吧。
到底怎么命名不可以,你多用DW试试就了解了。
而命名呢,最好有意义,比如说给一个DIV加上ID,这样命名为好:(<div id="div1"></div>)或(<div id="adiv"></div>)这样命名,以后看CSS代码时,大概就能知道,哪个是给DIV加的CSS了。
不知道是不是回答了你的问题。
参考文献: http://www.ibm.com/developerworks/cn/web/1512_chengfu_bem/
http://www.oschina.net/translate/thoughtful-css-architecture
BEM的本质是一个css类名命名方案。由于CSS没有作用域的概念,也不像SCSS那样可以写出层级关系,所以,如果有两个类名,比如.nav和li,虽然你知道li在.nav中,你也可以写出 .nav li {} 这样的选择器,但是很多情况下我们还是希望给li专门设一个类名,这时候BEM就是一个好的方案。
所谓BEM,其实是三个单词的缩写:Block(模块)、Element(元素)、Modifier(修饰符)。
一个模块是一个独立的实体部分,就像应用的一块“积木”。一个模块既可以是简单的也可以是复合的(包含其他模块)。
命名规范:
模块名称可以由拉丁字母,数字和短划线组成。 如:.block、.form
比如搜索框和按钮组成的组件就是一个模块。
我认为的命名的最佳实践是:.xxoo,也就是用两个词组成的词组来描述这个块,比如.propertyeditor或.languageswitcher,前者意思是属性编辑器,后者是语言切换器。强行用一个词来描述的话,你会发现词根本不够用。
B和M可以直接连用,跳过E,这是允许的。
一个元素是块的一部分,具有某种功能。元素是依赖上下文的:它们只有处于他们应该属于的块的上下文中时才是有意义的。
比如,.form的input元素和button元素都是元素。
命名规范:
元素名称可以包含拉丁字母,数字,破折号和下划线。 CSS类名写成块名称加破折号加上元素名称:.block-elem,其中elem可以是直接元素标签名,也是表义的名称。
我认为的最佳实践是:比如对话框内有一个确定按钮,这个确定按钮的类名可以是:.alert-modal__button--done,其中done是修饰符,表示是“表确定的那个按钮”。修饰符在下面讲。
修饰符是块或元素上的标志。这些标志用来形容元素或块的外观、行为或状态。例如button、a标签上的active状态。
命名规范:
修饰符名称可以包含拉丁字母,数字,破折号和下划线。 CSS类名写成模块或元素的名称加上两个破折号:.block--mod或.block__elem--mod和.block--color-black。
示例:
.form__submit--disabled
我认为的最佳实践是:比如对话框内有一个确定按钮,这个确定按钮的类名可以是:.alertmodal__button--done,其中done是修饰符,表示是“表确定的那个按钮”。
从上面的实例中,我们不难发现BEM有以下特点:
BEM的精华是B、E、M,中间用几个连接符都是小事,一般单个中划线就可以了,但是,最常见的连接符是bb__ee--mm的形式,尽量遵守这种形式,当你遇到其他人写的规范的css文档的时候,可以降低阅读难度。