除字体设置外, CSS 文件中的所有的代码都应该小写。
排版
- 原则上,以多行排版风格为标准,文件压缩用工具实现。
- 如果是在html中写内联的css,则必须使用单行排版风格。
- 重申:压缩工作能用工具就不要手动。
多行排版风格
- 空格缩进,大小为4 。
- 每个选择器占用一行。
- 每个样式声明占用一行。
- 属性名冒号之前不加空格,冒号之后加空格。
- 每条样式声明必须以分号
;
结束。 {
前添加空格,不要另起一行。- 两条样式规则之间用空行分隔。
代码示例:
body, ul { margin: 0; padding: 0; } html { background: #fff; }
单行排版风格
- 每一条规则的大括号
{
前后加空格。 - 每一条规则结束的大括号
}
前加空格 - 多个selector共用一个样式集,则多个selector必须写成多行形式。
- 属性名冒号之前不加空格,冒号之后加空格。
- 每条样式声明必须以分号
;
结束。
代码示例:
.test { width: 100px; height: 200px; } a:focus, a:hover { position: relative; right: 1px; }
选择器
命名风格:
- 一律由小写字母、数字和中划线组成。
- 不允许使用大写字母或下划线。
代码示例:
.feedlist {} // bad .feedList {} // bad .feed_list {} // bad .feed-list {} // good #videoid {} // bad #videoId {} // bad #video_id {} // bad #video-id {} // good
命名原则
- 要反映元素的目的,有意义。
- 要尽可能的短,也要足够长。
- 避免表现性命名。
- 避免中文拼音。
总之,易于理解和稳定。
.btn-yellow {} // bad .btn-warning {} // good #navigation {} // bad #atr {} // bad #nav {} // good #author {} // good .left {} // bad .right {} // bad .main {} // good .aside {} // good
ID vs Class
- id 是唯一的并是父级的, class 是可以重复的并是子级的。
- id 原则上尽量不用,为 JavaScript 预留的钩子除外。
- 为 JavaScript 预留钩子的命名, 请以 j- 起始,比如:
#j-hide {}
,#j-show {}
。
样式
尽可能使用缩写
margin, padding, border, background, font
0 值不用写单位
margin: 0;
0.x 可省略 0
font-size: .8em;
颜色值
全小写,缩写。
color: #FFEEDD; // bad color: #ffeedd; // bad color: #fed; // good
使用单引号 ''
使用单引号而非双引号。url
中不要使用引号。
html { font-family: 'open sans', arial, sans-serif; background: url(../img/bg.png) repeat; }
注:如果必须使用 @charset
,则该语句使用双引号。
@charset "utf-8";
顺序
- 按拼音顺序排序,便于记忆和维护。
- 如果使用CSS3的属性,如果有必要加入浏览器前缀,则按照 -webkit- / -moz- / -ms- / -o- / std 的顺序进行添加,标准属性写在最后。
代码风格:
background: fuchsia; border: 1px solid; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; color: black; text-align: center; text-indent: 2em;
注释规范
文件顶部注释
/* * @description: XXX说明 * @author: zhangxingkai CY2848 * @update: zhangxingkai 2013-4-25 */
模块注释
/* module: module1 by zhangxingkai */ /* module: module2 by liyi */
简单注释
/* this is a short comment */ /* * this is comment line 1. * this is comment line 2. */
特殊注释
/* TODO: xxx by zhangxingkai 2012-10-18 18:32 */ /* BUGFIX: xxx by zhifu.wang 2012-10-18 18:32 */