说到CSS命名,其实里面还有有很多思考的空间的。
经过我短浅的见识,以下谈谈我对于CSS命名的一些了解和见解。
其中,我发现有两种风格对立的命名方法。
-
面对元素命名
这是一种比较普遍的做法。
给元素设定类名的时候,尽可能的语义化,贴近元素本身。
比如在给左边栏的头部空间定义类名的时候,
可能会做出 .side-left-header 这样的类名,
这样命名的好处是,样式表只用一个类名就可以定位元素,
而且一眼就能看出这是为哪个元素设定样式,
维护起来比较方便,省去很多查找时间。
但是缺点也比较明显,
类名太长,有时候可能类名比要设定的属性还要长。
另外就是复用性的问题,
若当有另一个元素,也与它有相同的属性表现,
又要重新设置一个类名,并且内容还是一样的。
这听起来就比较恶心了吧。 -
面对属性命名
而另一个与之相反的方案,
就是把CSS属性都打散,
为一种属性设置设置一个类名,比如.fs16 { font-size: 16px; } .fs20 { font-size: 20px; } .m10 { margin: 10px; } .p20 { padding: 20px; }
这样的CSS命名方法,
明显缩短了类名的长度,也大大提高了代码的复用性。
在一些属性重复比较多的项目里,把CSS文件压缩到了极致。
但是,如果使用这样的CSS命名方式,
HTML文档中也多出了许多class代码。
而且当需要修改样式时,是需要查找HTML文件修改的。 -
还有一种风格
另外,还有一种 “ 超脱于尘世 ” 的命名方法。
.a {height: 100px;} .b {font-size: 2em;} .z {background: none;}
这种命名简直就是简单粗暴,
每一个类名相当于只是一个标志,并没有任何意义。
这种极度简洁的命名方式其实还是可以接受的。
在一些不需要语义,不需要考虑维护性的地方,
可以带来相当大的便利甚至眼前一亮。
-
综上所述,说点总结。
两种命名规则,都各有各的优点,当同时缺点也比较明显,
面对元素命名,清晰但臃肿,
面对属性命名,高效但维护成本高。其实,两种规则看似矛盾,但我举得还是可以适当揉合
以元素命名为基础,在一些复用性比较高的属性上,
把它们提取出来,单独作为一个类,方便重复使用。虽然说起来简单,这还是需要不少的经验和功力的,
最主要的我觉得还是这个意识吧。应该有个大局意识,从着手之前就该有个概念,
哪些属性复用性比较高,提前把它拎出来。
我觉得我首先可以从 .clear .in-block 等元素开始。
-
最后稍稍附一些命名规范
命名 | 内容 |
---|---|
重要部分 | |
外套 wrap | 用于最外层 |
头部 header | 用于头部 |
主要内容 main | 用于主体内容(中部) |
左侧 main-left | 左侧布局 |
右侧 main-right | 右侧布局 |
导航条 nav | 网页菜单导航条 |
内容 content | 用于网页中部主体 |
底部 footer | 用于底部 |
具体元素 | |
wrapper | 页面外围控制整体布局宽度 |
container或content | 容器,用于最外层 |
layout | 布局 |
head, header | 页头部分 |
foot, footer | 页脚部分 |
nav | 主导航 |
subnav | 二级导航 |
menu | 菜单 |
submenu | 子菜单 |
sideBar | 侧栏 |
sidebar-a, sidebar-b | 左边栏或右边栏 |
main | 页面主体 |
tag | 标签 |
msg message | 提示信息 |
tips | 小技巧 |
vote | 投票 |
friendlink | 友情连接 |
title | 标题 |
summary | 摘要 |
loginbar | 登录条 |
searchInput | 搜索输入框 |
hot | 热门热点 |
search | 搜索 |
search-output | 搜索输出和搜索结果相似 |
searchBar | 搜索条 |
search-results | 搜索结果 |
copyright | 版权信息 |
branding | 商标 |
logo | 网站LOGO标志 |
siteinfo | 网站信息 |
siteinfoLegal | 法律声明 |
siteinfoCredits | 信誉 |
joinus | 加入我们 |
partner | 合作伙伴 |
service | 服务 |
regsiter | 注册 |
arr/arrow | 箭头 |
guild | 指南 |
sitemap | 网站地图 |
list | 列表 |
homepage | 首页 |
subpage | 二级页面子页面 |
tool, toolbar | 工具条 |
drop | 下拉 |
dorpmenu | 下拉菜单 |
status | 状态 |
scroll | 滚动 |
.tab | 标签页 |
.left .right .center | 居左、中、右 |
.news | 新闻 |
.download | 下载 |
.banner | 广告条(顶部广告条) |
这篇文章其实是启发自大神——张鑫旭的精简高效的CSS命名准则
同时还有另一篇文章可以参考——DIV+CSS规范命名大全集合
Wait me back