前端编码规范之CSS
"字是门面书是屋",我们不会去手写代码,但是敲出来的代码要好看、有条理,这还必须得有一点约束~
团队开发中,每个人的编码风格都不尽相同,有时候可能存在很大的差异,为了便于压缩组件对代码进行压缩以及书写样式的规范统一和美观,很有必要大家一起来研究一套基本规范(模板)!
我先抛砖引玉。(禁止)、(必须)等字眼,在这里只是表示强调,未严格要求。
选择Indent Using Spaces,Tab Width:4两项即可。
2. 每个样式属性后(必须)加 ";"
方便压缩工具"断句"。
3. Class命名中(禁止)出现大写字母,(必须)采用” -“对class中的字母分隔,如:
/* 正确的写法 */
.hotel-title{
font-weight: bold;
}
/* 不推荐的写法 */
.hotelTitle{
font-weight: bold;
}
用"-"隔开比使用驼峰是更加清晰。
产品线-产品-模块-子模块,命名的时候也可以使用这种方式(@Artwl)
4. 空格的使用,以下规则(必须)执行:
.hotel-content{
font-weight: bold;
}
选择器与{ 之前(必须)要有空格
属性名的: 后(必须)要有空格
属性名的: 前(禁止)加空格
一个原因是美观,其次IE 6存在一个bug, 戳bug
5.多选择器规则之间(必须)换行
当样式针对多个选择器时每个选择器占一行
/* 推荐的写法 */
a.btn,
input.btn,
input[type="button"] {
......
}
6.(禁止)将样式写为单行, 如
.hotel-content{margin:10px;background-color:#efefef;}
单行显示不好注释,不好备注,这应该是压缩工具的活儿~
7.(禁止)向 0 后添加单位, 如:
.obj{
left:0px;
}
只是为了统一。记住,绿色字表强调,不表强制!
8.(禁止)使用css原生import
使用css原生import有很多弊端,比如会增加请求数等....
推荐文章:Don't use @import
9.(推荐)属性的书写顺序, 举个例子:
.hotel-content {
/* 定位 */
display:block;
position:absolute;
left:0;
top:0;
/* 盒模型 */
width:50px;
height:50px;
margin:10px;
border:1px solid black;
/ *其他* /
color:#efefef;
}
定位相关, 常见的有:display position left top float 等
盒模型相关, 常见的有:width height margin padding border 等其他属性
按照这样的顺序书写可见提升浏览器渲染dom的性能
10. 小图片(必须)sprite合并
推荐文章:NodeJs智能合并CSS精灵图工具iSpriter
11.(推荐)当编写针对特定html结构的样式时,使用元素名+ 类名
/* 所有的nav都是针对ul编写的 */
ul.nav {
......
}
".a div"和".a div.b",为什么后者好?如果需求有所变化,在".a"下有多加了一个div,试问,开始的样式是不是会影响后来的div啊~
12.(推荐)IE Hack List
/* 针对ie的hack */
selector {
property:value;/* 所有浏览器 */
property:value\9;/* 所有IE浏览器 */
property:value\0;/* IE8 */
+property:value;/* IE7 */
_property:value;/* IE6 */
*property:value;/* IE6-7 */
}
当使用hack的时候想想能不能用更好的样式代替
13.(不推荐)ie使用filter,( 禁止)使用expression
这里主要是效率问题,应该当格外注意,咱们要少用烧CPU的东西~
14.(禁止)使用行内(inline)样式
靖鸣君
像这样的行内样式,最好用一个class代替。又如要隐藏某个元素,可以给他加一个class
.hide{
display: none;
}
尽量做到样式和结构分离~
15.(推荐)reset.css样式
推荐网站:http://www.cssreset.com/
16.(禁止)使用"*"来选择元素
/*别这样写*/
* {
margin:0;
padding:0;
}
这样写是没有必要的,一些元素在浏览器中默认有margin或padding值,但是只是部分元素,没有必要将所有元素的margin、padding值都置为0。
17. 链接的样式,(务必)按照这个顺序来书写
a:link->a:visited->a:hover->a:active
18.等你补充...
多年编程经验,今年1月整理了一批2019年最新WEB前端教学视频,不论是零基础想要学习前端还是学完在工作想要提升自己,这些资料都会给你带来帮助,从HTML到各种框架,帮助所有想要学好前端的同学,学习规划、学习路线、学习资料、问题解答。只要加入WEB前端学习交流qun:296212562,即可免费获取,学习不怕从零开始,就怕从不开始。