1.文件命名
- CSS模块文件,其文件名必须与模块名一致;
假定有这样一个模块:
.wb-btn { sRules; }
.wb-btn--primary { sRules; }
.wb-btn--warn { sRules; }
.wb-btn--danger { sRules; }
那么该模块的文件名应该为:
wb-btn.css
- CSS页面文件,其文件名必须与HTML文件名一致;
假定有一个HTML页面叫
product.html
,那么其相对应的CSS页面文件名应该为:product.css
假定现在有一个
product.html
,里面有2个模块:
+<section class="wb-list">
+<section class="wb-info">
那么开发人员能快速找到与该页面相关的3个直接CSS文件,包括:product.css
, wb-list.css
, wb-info.css
2.小写
所有的HTML标签必须小写;
所有的HTML属性必须小写;
所有的样式名及规则必须小写。
3.注释
尽可能的为你的代码写上注释。解释为什么要这样写,它是新鲜的方案还是解决了什么问题。
4.待办事项
用 TODO 标示待办事项和正在开发的条目,方便查找未完成的工作,快速定位
<!-- TODO: 图文混排 -->
<div class="g-imgtext">
<img src="1.png" alt="" />
...
/* TODO: 图文混排 comm: g-imgtext */
.g-imgtext { sRules; }
5.行尾空格
删除行尾空格,这些空格没有必要存在
6.省略嵌入式资源协议头
省略图像、媒体文件、样式表和脚本等URL协议头部声明 ( http: , https: )。如果不是这两个声明的URL则不省略。
省略协议声明,使URL成相对地址,防止内容混淆问题和导致小文件重复下载(这个主要是指http和https交杂的场景中)。
不推荐:
<script src="http://www.google.com/js/gweb/analytics/autotrack.js"></script>
推荐:
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>
不推荐:
.example {
background: url(http://www.google.com/images/example);
}
推荐:
.example {
background: url(//www.google.com/images/example);
}
注:省略协议头在IE7-8下会有一点小问题,外部CSS文件(link和@import)会被下载两遍,所以该条目的约定看具体项目。
7.代码有效性
使用 W3C HTML Validator 来验证你的HTML代码有效性;
使用 W3C CSS Validator 来验证你的CSS代码有效性。
代码验证不是最终目的,真的目的在于让开发者在经过多次的这种验证过程后,能够深刻理解到怎样的语法或写法是非标准和不推荐的,即使在某些场景下被迫要使用非标准写法,也可以做到心中有数。
8.图像约定
1.图像压缩
所有图片必须经过一定的压缩和优化才能发布
2.背景图
使用PNG格式而不是GIF格式,因为PNG格式色彩更丰富,还能提供更好的压缩比;
在需要兼容IE6的项目中,尽可能选择PNG8,而不是使用PNG24+滤镜。
3.前景图
内容图片建议使用JPG,可以拥有更好地显示效果;
装饰性图片使用PNG。
4.Sprite
CSS Sprite是一种将数个图片合成为一张大图的技术(既可以是背景图也可以是前景图),然后通过偏移来进行图像位置选取;
CSS Sprite可以减少http请求。
现阶段建议优先使用字体图标的方式获取类似icon的图标