[转]CSS编码规范
单行形式书写风格的排版约束
1. 每一条规则的大括号 { 前后加空格
2. 多个selector共用一个样式集,则多个selector必须写成多行形式
3. 每一条规则结束的大括号 } 前加空格
4. 属性名冒号之前不加空格,冒号之后加空格
5. 每一个属性值后必须添加分号; 并且分号后空格
例如:
div.test { width: 100px; height: 200px; }
a:focus,
a:hover { position: relative; right: 1px; }
多行形式书写风格的排版约束
1. 每一条规则的大括号 { 前添加空格
2. 多个selector共用一个样式集,则多个selector必须写成多行形式
3. 每一条规则结束的大括号 } 必须与规则选择器的第一个字符对齐
4. 属性名冒号之前不加空格,冒号之后加空格
5. 属性值之后添加分号;
其他规范
1. 使用单引号,不允许使用双引号
2. 如果使用CSS3的属性,如果有必要加入浏览器前缀,则按照webkit- / -moz- / -ms- / -o- / std的顺序进行添加,标准属性写在最后,并且属性名称要对齐,例如:
div.animation-demo {
-webkit-animation: mymove 5s infinite;
-moz-animation: mymove 5s infinite;
-o-animation: mymove 5s infinite;
animation: mymove 5s infinite;
}
命名规则书写规范
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样式设置,例如:
div {
width: 200px;
font-size: 16px;
}
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. 注意选择器的性能,不要使用低性能的选择器,例如:
div > * {}
ul > li > a {}
body.profile ul.tabs.nav li a {}
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取值规范
头部导航区域 |
[1999 - 2100] |
publisher所在的内容head区 |
[1998] |
页面主要内容区域 |
[-1 - 1997] |
页面底部 |
[1999 - 2100] |
首页应用弹层 |
[1000] |
全站公共组件 |
[-1 - 1999] |
全页面蒙层弹窗组件 |
[10000-11000] |
其他
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
[转]CSS编码规范的更多相关文章
- css编码规范
css编码规范 https://segmentfault.com/a/1190000002460968 常用样式测试工具 W3C CSS validator:http://jigsaw.w3.org/ ...
- HTML编码规范、CSS编码规范
HTML编码规范 IE 兼容模式 IE 支持通过特定的 标签来确定绘制当前页面所应该采用的 IE 版本.除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的 ...
- Bootstrap-Other:CSS编码规范
ylbtech-Bootstrap-Other:CSS编码规范 1.返回顶部 1. Bootstrap CSS编码规范 语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致 ...
- 8.Bootstrap CSS编码规范
Bootstrap CSS编码规范 本节的介绍内容为 Bootstrap 中的 CSS 编码规范. 语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法. 为选择 ...
- 总结-css编码规范
一.注释 统一采用 :/* 注释内容 */ 二.命名 1.常用命名(多查单词) 参考命名规范.doc 2.选择器 1> [建议] 选择器的嵌套层级应不大于 3 级,位置靠后的限定条件应尽可能精确 ...
- CSS 编码规范
转自: https://segmentfault.com/a/1190000005046830 CSS书写格式 1.格式化代码 1.1文件 [建议]:CSS文件使用无BOM的UTF-8编码 1.2缩进 ...
- 前端HTML与CSS编码规范
HTML 语法 HTML5 doctype 语言属性(Language attribute) 字符编码 IE 兼容模式 引入 CSS 和 JavaScript 文件 实用为王 属性顺序 布尔(bool ...
- Google HTML/CSS 编码规范
Google HTML/CSS 规范 本文介绍了 Google 推荐的 HTML 和 CSS 编写格式规范,以建立良好的个人编码习惯. 1.通用样式规范 省略图片.样式.脚本以及其他媒体文件 URL ...
- HTML CSS 编码规范
返璞归真,代码规范也是一门艺术 黄金定律 永远遵循同一套编码规范 -- 可以是这里列出的,也可以是你自己总结的.如果你发现本规范中有任何错误,敬请指正.通过open an issue on GitHu ...
- 前端(HTML/CSS/JS)-CSS编码规范
1. 文件名规范 文件名建议用小写字母加中横线的方式.为什么呢?因为这样可读性比较强,看起来比较清爽 https://stackoverflow.com/questions/25704650/disa ...
随机推荐
- windows下配置nginx+php环境
刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是"引擎x",一般引"擎代"表了性能,而"x"大多出现是表示" ...
- Oracle Redo 以及 Archived日志简述
Oracle通过Redo Archived实现数据的归档 什么是Redo日志 Redo日志记录了数据的变更,用于在数据库出现故障后,进行数据恢复. 功能主要由三个组件实现:Redo Log Buffe ...
- MyBatis学习总结(六)——调用存储过程
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_ ...
- Atitit 热更新资源管理器 自动更新管理器 功能设计
Atitit 热更新资源管理器 自动更新管理器 功能设计 · 多线程并行下载支持 · 两层进度统计信息:文件级以及字节级 · Zip压缩文件支持 · 断点续传 · 详细的错误报告 · 文件下载失败重试 ...
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- fir.im Weekly - 技术人也要苦练“七十二变”
一年又一年,Code,Build,Run.多少技术人像"孙悟空"一样,日复一日苦练"七十二变",笑对"八十一难",最后能"取经成功 ...
- Sqlserver分页的问题
好久没有用SqlServer了,今天写了一个分页,遇到了小问题,本着温故而知新的道理,再来随便写些什么吧. 语句是这样的 string sql=“select * from ( select*,(ro ...
- 元素多层嵌套,JS获取问题
如果一段html嵌套过多,在js中获取还是比较麻烦的,我写了几套方案,大家可以参考参考,如果你有好的方法,也分享出来,让我们瞧瞧. HTML: <!DOCTYPE html> <ht ...
- POJ 2312Battle City(BFS-priority_queue 或者是建图spfa)
/* bfs搜索!要注意的是点与点的权值是不一样的哦! 空地到空地的步数是1, 空地到墙的步数是2(轰一炮+移过去) 所以用到优先队列进行对当前节点步数的更新! */ #include<iost ...
- [c++] STL = Standard Template Library
How many people give up, because of YOU. Continue... 先实践,最后需要总结. 1. 数据流中的数据按照一定的格式<T>提取 ------ ...