CSS编码规范

单行形式书写风格的排版约束

1.每一条规则的大括号 { 前后加空格

2.多个selector共用一个样式集,则多个selector必须写成多行形式

3.每一条规则结束的大括号 } 前加空格

4.属性名冒号之前不加空格,冒号之后加空格

5.每一个属性值后必须添加分号; 并且分号后空格

例如:

多行形式书写风格的排版约束

1.每一条规则的大括号 { 前添加空格

2.多个selector共用一个样式集,则多个selector必须写成多行形式

3.每一条规则结束的大括号 } 必须与规则选择器的第一个字符对齐

4.属性名冒号之前不加空格,冒号之后加空格

5.属性值之后添加分号;

其他规范

1.使用单引号,不允许使用双引号

2.如果使用CSS3的属性,如果有必要加入浏览器前缀,则按照webkit- / -moz- / -ms- / -o- / std的顺序进行添加,标准属性写在最后,并且属性名称要对齐,例如:

命名规则书写规范

1、规则命名中,一律采用小写加中划线的方式,不允许使用大写字母或 _

2、命名避免使用中文拼音,应该采用更简明有语义的英文单词进行组合

3、命名注意缩写,但是不能盲目缩写,具体请参见常用的CSS命名规则

4、不允许通过1、2、3等序号进行命名

5、避免class与id重名

6、id用于标识模块或页面的某一个父容器区域,名称必须唯一,不要随意新建id

7、class用于标识某一个类型的对象,命名必须言简意赅。

8、尽可能提高代码模块的复用,样式尽量用组合的方式

9、规则名称中不应该包含颜色(red/blue)、定位(left/right)等与具体显示效果相关的信息。应该用意义命名,而不是样式显示结果命名。

10、除了重置浏览器默认样式外,禁止直接为html tag添加css样式设置,例如:

11、每一条规则应该确保选择器唯一,禁止直接为全局.nav/.header/.body等类设置属性

属性编写顺序

推荐的样式编写顺序

1、显示属性display/list-style/position/float/clear

2、自身属性(盒模型)width/height/margin/padding/border

3、背景background

4、行高line-height

5、文本属性color/font/text-decoration/text-align/text-indent/vertical-align/white-space/content

6、其他cursor/z-index/zoom

7、CSS3属性transform/transition/animation/box-shadow/border-radius

8、链接的样式请严格按照如下顺序添加:a:link -> a:visited -> a:hover -> a:active(LoVeHAte)

性能优化

1.选择器应该在满足功能的基础上尽量简短,减少选择器嵌套,查询消耗。但是一定要避免覆盖全局样式设置。

2.注意选择器的性能,不要使用低性能的选择器,例如:

3.禁止在css中使用*选择符

4. 除非必须,否则,一般有class或id的,不需要再写上元素对应的tag,例如:

div#test { width: 100px; }

5.0后面不需要单位,比如0px可以省略成0,0.8px可以省略成.8px

6.如果是16进制表示颜色,则颜色取值应该大写。

7.如果可以,颜色尽量用三位字符表示,例如#AABBCC写成#ABC

8.如果没有边框时,不要写成border:0,应该写成border:none

9.尽量避免使用AlphaImageLoader

10.在保持代码解耦的前提下,尽量合并重复的样式

11.background、font等可以缩写的属性,尽量使用缩写形式

hack

IE6 * html selector { … } IE7 *+html selector { … } 非IE6 html>body selector { … } firefox @-moz-document url-prefix() { … } safari3+/chrome @media screen and (-webkit-min-device-pixel-ratio:0) { … } opera @media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) { … } iPhone/mobile webkit @media screen and (max-device-width: 480px) { … }

z-index取值规范

其他

1、字体名称请映射成对应的英文名,例如:黑体(SimHei) 宋体(SimSun) 微软雅黑 (Microsoft Yahei),如果字体名称中有空格,则必须加单引号。

2、背景图片请合理使用csssprites,按照模块、业务、页面来划分均可

3、css背景图片的文件类型,请按照以下原则来保存:

3.1 如果背景图片有动画,则保存成gif

3.2 如果没有动画,也没有半透明效果,则保存成png-8

3.3 如果有半透明效果,则保存成png-24

4、不要在html中加入标签来清理浮动,通过在浮动元素的父元素上添加.clearfix来清除浮动

5、为了SEO和页面可用性,请使用text-indent来隐藏文本内容。

6、制作css sprites时,尽量把颜色相近的图标放在一起,存储为png8格式,存储完以后还能用一些压缩工具进行无损压缩。

7、避免过小的背景图片平铺。

8、尽量少用!important

9、避免使用非一次性expression

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2015-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏达摩兵的技术空间

js中的作用域

相信自从es6出来之后,你一定多少知道或者已经在项目中实践了部分的块级作用域,在函数或者类的内部命名变量已经在使用let了,但是你知道它真正的作用是什么吗?又是...

672
来自专栏小詹同学

Python系列之——字符串格式化(xiaozhan is a boy of 22 years old.)

不知道小伙伴有没有遇到过字符串输出有格式要求的情况呢?今天小詹学习分享一波python的字符串格式化的方法。学以致用,首先我们得明确为什么要格式化字符串输出,以...

552
来自专栏机器学习算法与Python学习

python基础-字符串与编码

转载于:廖雪峰的官方网站-python教程 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。 因为计算机只能处理数字...

44111
来自专栏趣谈编程

Unicode与UTF-8的区别

要弄清Unicode与UTF-8的关系,我们还得从他们的来源说起,下来我们从刚开始的编码说起,直到Unicode的出现,我们就会感觉到他们之间的关系

862
来自专栏编程

浅谈Go语言中闭包的使用

闭包(Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的自由...

2678
来自专栏Java帮帮-微信公众号-技术文章全总结

JavaWeb02-CSS,JS(Java真正的全栈开发)

? css&javascript 一.CSS 1.CSS介绍 CSS 指层叠样式表 (Cascading Style Sheets),用来定义网页的显示效果。...

35315
来自专栏积累沉淀

JavaScript基础1

什么是Javascript? Javascript是一种基于对象和事件驱动的, 与平台无关的 ,具有安全性的 ,弱类型的脚本语言。 为什么要用? 使...

2165
来自专栏日常学python

史上最全关于sorted函数的10条总结(文末附送书中奖名单)

sorted 用于对集合进行排序(这里说的集合是对可迭代对象的一个统称,他们可以是列表、字典、set、甚至是字符串),它的功能非常强大,本文将深入浅出地介绍 s...

574
来自专栏用户2442861的专栏

python编码问题

我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。

531
来自专栏带你撸出一手好代码

不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 ? 当...

3075

扫码关注云+社区