Web技术中心代码规范 - 命名规则

分类的命名方法:使用单个字母+"-"为前缀

布局(grid)(.g-);模块(module)(.m-);元件(unit)(.u-);功能(function)(.f-);皮肤(skin)(.s-);状态(.z-)。

后代选择器命名

约定不以单个字母+"-"为前缀且长度大于等于2的类选择器为后代选择器,如:.itemm-list模块里的每一个项,.textm-list模块里的文本部分:.m-list .item{}.m-list.text{}

一个语义化的标签也可以是后代选择器,比如:.m-list li{}

不允许单个字母的类选择器出现,原因详见下面的模块和元件的后代选择器的扩展类

通过使用后代选择器的方法,你不需要考虑他的命名是否已被使用,因为他只在当前模块或元件中生效,同样的样式名可以在不同的模块或元件中重复使用,互不干扰;在多人协作或者分模块协作的时候效果尤为明显!

后代选择器不需要完整表现结构树层级,尽量能短则短。

注:后代选择器不要在页面布局中使用,因为污染的可能性较大;

1

2

3

4

5

6

7

8

/* 这里的.itm.cnt只在.m-list中有效 */

.m-list{margin:0;padding:0;}

.m-list .itm{margin:1px;padding:1px;}

.m-list .cnt{margin-left:100px;}

/* 这里的.cnt.num只在.m-page中有效 */

.m-page{height:20px;}

.m-page .cnt{text-align:center;}

.m-page .num{border:1px solid #ddd;}

相同语义的不同类命名

方法:直接加数字或字母区分即可(如:.m-list.m-list2.m-list3等,都是列表模块,但是是完全不一样的模块)。

其他举例:.f-fw0.f-fw1.s-fc0.s-fc1.m-logo2.m-logo3u-btnu-btn2等等。

模块和元件的扩展类的命名方法

ABC...它们类型相同且外形相似区别不大,那么就以它们中出现率最高的做成基类,其他做成基类的扩展。

方法:+“-”+数字或字母(如:.m-list的扩展类为.m-list-1.m-list-2等)。

补充:基类自身可以独立使用(如:class="m-list"即可),扩展类必须基于基类使用(如:class="m-list m-list-2")。

如果你的扩展类是表示不同状态,那么你可以这样命名:u-btn-disu-btn-hovm-box-selm-box-hov等等,然后像这样使用:class="u-btnu-btn-dis"

如果你的网站可以不兼容IE6等浏览器,那么你标识状态的方法也可以采取独立状态分类(.z-)方法:.u-btn.z-dis.m-box.z-sel,然后像这样使用:class="u-btnz-dis"

模块和元件的后代选择器的扩展类

有时候模块内会有些类似的东西,如果你没有把它们做成元件和扩展,那么也可以使用后代选择器和扩展。

后代选择器:.m-login .btn{}

后代选择器扩展:.m-login .btn-1{}.m-login .btn-dis{}

同样也可以采取独立状态分类(.z-)方法:.m-login .btn.z-dis{},然后像这样使用:class="btnz-dis"

注:此方法用于类选择器,直接使用标签做为选择器的则不需要使用此命名方法。

注:为防止后代选择器的扩展类和大类命名规范冲突,后代选择器不允许使用单个字母。

  比如:.m-list .a{}是不允许的,因为当这个.a需要扩展的时候就会变成.a-bb,这样就和大类的命名规范冲突。

分组选择器有时可以代替扩展方法

有时候虽然两个同类型的模块很相似,但是你希望他们之间不要有依赖关系,也就是说你不希望使用扩展的方法,那么你可以通过合并选择器来设置共性的样式。

使用本方法的前提是:相同类型、功能和外观都相似,写在同一片代码区域方便维护。

1

2

3

4

5

6

7

8

9

10

/* 两个元件共性的样式 */

.u-tip1,.u-tip2{}

.u-tip1 .itm,.u-tip2 .itm{}

/* 在分别是两个元件各自的样式 */

/* tip1 */

.u-tip1{}

.u-tip1 .itm{}

/* tip2 */

.u-tip2{}

.u-tip2 .itm{}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值