前面的话
每次写HTML结构涉及到CSS命名时,都要挣扎一番。关于CSS命名的规范,市面上有不少,如OOCSS、SMACSS、BEM和MVCSS等。在这里面最火的应该算BEM了。本文将详细介绍CSS命名
主流命名
【BEM】
说起CSS命名,当然要提到BEM。BEM的意思就是B模块(block)、E元素(element)、M修饰符(modifier)。模块和子元素之间用两个下划线分隔,子元素和修饰符之间用两个中划线分隔
??关于子元素E,有两种写法。一种是按照层级嵌套来写,如 block-ele1-son-inner ,但是这样写会导致命名过长;另一种是扁平化,一个模块B下的所有子元素,无论相互层级如何,都直接连接B,如 block-inner ,但是这样就无法表示层级关系,命名时也可能会出现冲突
??BEM的命名是很好的,不然也不能成为最流行的命名方法。但是,BEM对子元素的命名,无论是层级长命名还是扁平化短命名,都有缺陷
【NEC】
相较于BEM以模块B为顶级元素,子元素类名中包含继承关系的命名,网易的NEC规范使用后代选择器方式
??NEC将元素分为了5类:布局(grid)(.g-);模块(module)(.m-);元件(unit)(.u-);功能(function)(.f-);皮肤(skin)(.s-);状态(.z-)。而后代选择器不需要完整表现结构树层级,尽量能短则短
.m-list{margin:0;padding:0;}.m-list .itm{margin:1px;padding:1px;}.m-list .cnt{margin-left:100px;}
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did72296