css编写规范
一、注释规范
1、文件顶部注释(推荐使用)
- /*
- * @description: 中文说明
- * @author: name
- * @update: name (2013-04-13 18:32)
- */
2、模块注释
模块注释必须单独写在一行
- /* module: module1 by 张三 */
- …
- /* module: module2 by 张三 */
3、单行注释与多行注释
单行注释可以写在单独一行,也可以写在行尾,注释中的每一行长度不超过40个汉字,或者80个英文字符。
- /* this is a short comment */
多行注释必须写在单独行内
- /*
- * this is comment line 1.
- * this is comment line 2.
- */
4、特殊注释
用于标注修改、待办等信息
- /* TODO: xxxx by name 2013-04-13 18:32 */
- /* BUGFIX: xxxx by name 2012-04-13 18:32 */
5、区块注释
对一个代码区块注释(可选),将样式语句分区块并在新行中对其注释。
- /* Header */
- /* Footer */
- /* Gallery */
二、编码规范
1. tab键用(必须)四个空格代替
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有很多弊端,比如会增加请求数等....
9. 不要轻易改动全站级CSS和通用CSS库。改动后,要经过全面测试。8. 避免使用filter
10. 避免在CSS中使用expression
11. 避免过小的背景图片平铺,小图片(必须)sprite 合并
12. 层级(z-index)必须清晰明确,页面弹窗、气泡为最高级(最高级为999),不同弹窗气泡之间可在三位数之间调整;普通区块为10-90内10的倍数;区块展开、弹出为当前父层级上个位增加,禁止层级间盲目攀比。
13. 背景图片请尽可能使用sprite技术, 减小http请求, 考虑到多人协作开发, sprite按照模块、业务、页面来划分均可。
14. (推荐)
属性的书写顺序, 举个例子:
.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的性能
15. (推荐)
当编写针对特定html结构的样式时,使用元素名
+ 类名
/* 所有的nav都是针对ul编写的 */
ul.nav {
......
}
".a div"和".a div.b",为什么后者好?如果需求有所变化,在".a"下有多加了一个div,试问,开始的样式是不是会影响后来的div啊~
16. (推荐)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的时候想想能不能用更好的样式代替
17. (不推荐)
ie使用filter
,( 禁止)
使用expression
这里主要是效率问题,应该当格外注意,咱们要少用烧CPU的东西~
18. (禁止)使用行内(inline)样式
<p style="font-size: 12px; color: #FFFFFF">靖鸣君</p>
像这样的行内样式,最好用一个class代替。又如要隐藏某个元素,可以给他加一个class
.hide {
display: none;
}
尽量做到样式和结构分离~
19. (推荐)reset.css样式
20.(禁止)使用"*"来选择元素
/*别这样写*/
* {
margin: 0;
padding: 0;
}
这样写是没有必要的,一些元素在浏览器中默认有margin或padding值,但是只是部分元素,没有必要将所有元素的margin、padding值都置为0。
21. 链接的样式,(务必)按照这个顺序来书写
a:link -> a:visited -> a:hover -> a:active
css编写规范的更多相关文章
- 个人css编写规范
前言:最近在做微信小程序,因为公司小,就我一个人弄前端的东西,js和页面都是我来弄,结果那天后台的人看到我的js代码,说我的代码写得不规范,函数什么的都很乱,弄得我羞愧难当,幸亏没看我的css,其实我 ...
- HTML+CSS编写规范
在任何一个项目或者系统开发之前都需要定制一个开发约定和规则,这样有利于项目的整体风格统一.代码维护和扩展.由于Web项目开发的分散性.独立性.整合的交互性等,所以定制一套完整的约定和规则显得尤为重要. ...
- css编写规范最佳实践
最初,在编写CSS的时候,我们往往想到哪儿就写到哪儿,它们之间的关联性和有序性并不在考虑之中.但随着代码量的增加,亦或是多人共同开发,CSS的编写规范变得重要起来了.本文通过三个方面,总结出CSS编写 ...
- html css 编写规范
html 规范 一 语法 1.用两个空格带她tab, 2.嵌套的元素应该缩进一次,即两个空格是最好 3.属性定义,全部使用双引号,尽量避免单引号. 4.不要在自闭和标签尾部添加闭合标签. 5.可选得结 ...
- 关于HTML与CSS编写规范
之前一直没有注意到这一点,因为当看到一些优秀的网站的源代码的时候,打开他们引用的css文件格式看起来也并非规范.但幸运的昨天偶然间看到的通过增强CSS规范可读性可优化页面性能,于是下决心痛改前非. 我 ...
- 高质量CSS编写规范
①id和class的命名在保持语义性的同时尽可能的短.不推荐的写法:#navigation {} .atr {}推荐的写法 : #nav {} .author {}可以缩写单词,但缩写后务必能让人明 ...
- web(五)CSS引入方式,编写规范及调试
CSS (Cascading Style Sheets)层叠样式表 ,是由万维网联盟(W3C)制定的标准 CSS的主要作用: 美化html元素的外观,例如设定背景颜色.字体等. 对网页元素进行布局.以 ...
- CSS编写指导规范和建议
在参与规模庞大.历时漫长且参与人数众多的项目时,所有开发者遵守如下规则极为重要: 保持 CSS 易于维护 保持代码清晰易懂 保持 CSS 的可拓展性 为了实现这一目标,我们要采用诸多方法. 本文档第一 ...
- CSS的编写规范
一.前言 如上图,页面在渲染和画图时,耗时还是比较多的,这就对我们的编写要求愈加严格. 我们有很多方法来减少上图所示的页面加载耗时的,比如 但是更多的还是在于平时的编写规范,我们需要了解浏览器,让他更 ...
随机推荐
- GitHub中国区前100名到底是什么样的人?
本文根据Github公开API,抓取了地址显示China的用户,根据粉丝关注做了一个排名,分析前一百名的用户属性,剖析这些活跃在技术社区的牛人到底是何许人也!后续会根据我的一些经验出品<技术人员 ...
- Android视频播放之VideoView
Android视频播放之VideoView 1.VideoView类介绍 Android的VideoView组件可以从不同的来源(例如资源文件或内容提供器)读取图像,计算和维护视频的画面尺寸以使其适用 ...
- [poj 3537]Crosses and Crosses(博弈论)
题目:http://poj.org/problem?id=3537 题意:给你n个格子,两个人依次在n个格子的任意空位置画"X",谁如果画了一个后,3个X连在了一起,那么那个人就获 ...
- 线段树(codevs1082)
type jd=record z,y,lc,rc,sum,toadd:int64; end; var tree:..] of jd; qzh:..] of int64; x:..] of int64; ...
- JSON字符串——后台解析系列
以前我们都是讲JSON字符串获取后,在前台进行展示.今天小编就交给大家后台解析展示数据的方法.非常方便,就以下代码: JObject obj = JObject.Parse(data); string ...
- C# Gabbage Collecting System
* 这个程序非常巧妙的探测了一下垃圾回收机制,发现如下结论: * 当内存紧急时,才会启动垃圾回收GC.Collect() * 从此程序的运行上来看,delete是连续出现的,这体现了垃圾回收的强度. ...
- <html>中的action
现在发现html中的许多标签都具有重要属性,而且这些属性是需要用于数据的传输的,虽然说html着重在于数据的显示,但是 在浏览器与服务器之间的交互,需要有数据参与传输,而数据传输的标准,就依赖于htm ...
- c++中STL库简介及使用说明
作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的.STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现.本教程旨在传播和普及STL的基础知识,若能借此机 ...
- [转]Spring 注解总结
原文地址:http://blog.csdn.net/wangshfa/article/details/9712379 一 注解优点?注解解决了什么问题,为什么要使用注解? 二 注解的来龙去脉(历史) ...
- 对象关系映射ORM
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效 ...