單行形式書寫風格的排版限制
1. 每一條規則的大括号 { 前後加空格
2. 多個selector共用一個樣式集,則多個selector必須寫成多行形式
3. 每一條規則結束的大括号 } 前加空格
4. 屬性名冒号之前不加空格,冒号之後加空格
5. 每一個屬性值後必須添加分号; 并且分号後空格
例如:
div.test { width: 100px; height: 200px; }
a:focus,
a:hover { position: relative; right: 1px; }
多行形式書寫風格的排版限制
1. 每一條規則的大括号 { 前添加空格
3. 每一條規則結束的大括号 } 必須與規則選擇器的第一個字元對齊
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]
頁面底部
首頁應用彈層
[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