代碼君推薦:CSS書寫順序及相應規范
來自: http://daimajun.com/web/32.html
經常有朋友找袁程旭給其項目檢測或更改某些模塊功能,在查看其項目源碼的時候,對那些毫無意義可言的 id(或class),還有那些不規范的CSS樣式書寫順序,著實讓人不理解到頭疼。如果不是為了兼容各大瀏覽器而寫的兼容性代碼的話,CSS樣式書寫順序一般不影響最終結果,但樣式書寫不規范的話對后期維護會造成很大困擾。看見了沒,或許前端開發并沒有你想象中那么隨意。
當然值得抱歉的是,袁程旭沒去找什么官方文檔來嚴格規范書寫CSS樣式,本人比較認同曾經看過的一篇文章上的CSS書寫順序及相應規范,在此先摘錄那篇文章的主要內容分享給大家。
[ 文章摘錄開始 ]
CSS書寫順序
1.位置屬性(position, top, right, z-index, display, float等)
2.大小(width, height, padding, margin)
3.文字系列(font, line-height, letter-spacing, color- text-align等)
4.背景(background, border等)
5.其他(animation, transition等)
CSS書寫規范
使用CSS縮寫屬性
CSS有些屬性是可以縮寫的,比如padding,margin,font等等,這樣精簡代碼同時又能提高用戶的閱讀體驗。
去掉小數點前的“0”
簡寫命名
很多用戶都喜歡簡寫類名,但前提是要讓人看懂你的命名才能簡寫哦!
16進制顏色代碼縮寫
有些顏色代碼是可以縮寫的,我們就盡量縮寫吧,提高用戶體驗為主。
連字符CSS選擇器命名規范
1.長名稱或詞組可以使用中橫線來為選擇器命名。
2.不建議使用“_”下劃線來命名CSS選擇器,為什么呢?
1.)輸入的時候少按一個shift鍵;
2.)瀏覽器兼容問題 (比如使用_tips的選擇器命名,在IE6是無效的)
3.)能良好區分JavaScript變量命名(JS變量命名是用“_”)
這里有一篇破折號與下劃線的詳細討論,英文版: 點擊查看 中文版: 點擊查看
不要隨意使用id
id在JS是唯一的,不能多次使用,而使用class類選擇器卻可以重復使用,另外id的優先級優先與class,所以id應該按需使用,而不能濫用。
為選擇器添加狀態前綴
有時候可以給選擇器添加一個表示狀態的前綴,讓語義更明了,比如下圖是添加了“.is-”前綴。
CSS命名規范(規則)
常用的CSS命名規則
頭:header
內容:content/container
尾:footer
導航:nav
側欄:sidebar
欄目:column
頁面外圍控制整體佈局寬度:wrapper
左右中:left right center
登錄條:loginbar
標志:logo
廣告:banner
頁面主體:main
熱點:hot
新聞:news
下載:download
子導航:subnav
菜單:menu
子菜單:submenu
搜索:search
友情鏈接:friendlink
頁腳:footer
版權:copyright
滾動:scroll
內容:content
標簽:tags
文章列表:list
提示信息:msg
小技巧:tips
欄目標題:title
加入:joinus
指南:guide
服務:service
注冊:regsiter
狀態:status
投票:vote
合作伙伴:partner
注釋的寫法:
/* Header */
內容區
/* End Header */
id的命名:
1)頁面結構
容器: container
頁頭:header
內容:content/container
頁面主體:main
頁尾:footer
導航:nav
側欄:sidebar
欄目:column
頁面外圍控制整體佈局寬度:wrapper
左右中:left right center
(2)導航
導航:nav
主導航:mainnav
子導航:subnav
頂導航:topnav
邊導航:sidebar
左導航:leftsidebar
右導航:rightsidebar
菜單:menu
子菜單:submenu
標題: title
摘要: summary
(3)功能
標志:logo
廣告:banner
登陸:login
登錄條:loginbar
注冊:register
搜索:search
功能區:shop
標題:title
加入:joinus
狀態:status
按鈕:btn
滾動:scroll
標籤頁:tab
文章列表:list
提示信息:msg
當前的: current
小技巧:tips
圖標: icon
注釋:note
指南:guide
服務:service
熱點:hot
新聞:news
下載:download
投票:vote
合作伙伴:partner
友情鏈接:link
版權:copyright
注意事項:
1.一律小寫;
2.盡量用英文;
3.不加中槓和下劃線;
4.盡量不縮寫,除非一看就明白的單詞;
CSS樣式表文件命名
主要的 master.css
模塊 module.css
基本共用 base.css
布局、版面 layout.css
主題 themes.css
專欄 columns.css
文字 font.css
表單 forms.css
補丁 mend.css
打印 print.css
</div>
[ 文章摘錄結束 ]
為了方便大家更好地學習CSS書寫順序及相應規范,代碼君袁程旭特地將這篇文章中的內容制作成了一張1366 * 759的圖片,喜歡的朋友可下載此圖設置為桌面背景,這樣在平常編碼的時候就可以很方便地查看這些規則、并嚴格遵照規則編寫規范樣式代碼了。(PS:可拖動圖片查看大圖;)
對于這篇文章中未提及的一些東西,袁程旭將在接下來的文章中加以補充。
CSS文件結構目錄:
1. 重置瀏覽器默認樣式
2. 全局常用 CSS 樣式
3. 表單及表單元素
4. 頁面布局以及通用的區塊樣式
5. 列表樣式
6. 其他特定功能塊
CSS 樣式模塊的格式示例:
Name:模塊名稱
Level:級別(Global, Channel, Function)
Dependent:依賴關系,該模塊必須依賴于何種模塊
Sample:用法示例,或指出改模塊所作用的直接頁面
Explain:附加說明
Author:創建者 日期(兩位數年月日時)
Last Modify:最終修改者 日期(兩位數年月日時)
CSS注釋規范:
1. 文件頂部注釋(推薦使用)
- /*
- * @description: 中文說明
- * @author: name
- * @update: name (2015-11-16 08:16)
- */
2. 模塊注釋(模塊注釋必須單獨寫在一行)
- /* module: module1 by 袁程旭 */
- …
- /* module: module2 by 袁程旭 */
3. 單行注釋與多行注釋
/* this is a short comment */單行注釋可寫在單獨一行,也可寫在行尾,注釋中每行長度不超過40個漢字(80個英文字符)
- /*
- * this is comment line 1.
- * this is comment line 2.
- */
4. 特殊注釋
- /* TODO: xxxx by name 2015-11-16 08:32 */
- /* BUGFIX: xxxx by name 2015-11-16 08:16 */
5. 區塊注釋
- /* Header */
- /* Footer */
- /* Gallery */
CSS 寫作注意事項:
1. 屬性寫在一行內,屬性之間、屬性名和值之間以及屬性與“{}”之間須有空格;
例如: .class { width: 400px; height: 300px; }
2. 屬性的書寫順序:
2.1 ) 針對特殊瀏覽器的屬性,應寫在標準屬性之前;
例如: -webkit-box-shadow:; -moz-box-shadow:; box-shaow:;
2.2 ) 謹慎添加新的選擇符規則,尤其不可濫用 id,盡可能繼承和復用已有樣式;
3. 選擇符、屬性、值均用小寫(格式的顏色值除外),縮寫的選擇符名稱須說明縮寫前的全稱;
例如: .cl -> Clearfix
4. 避免使用各種 CSS Hack,如需對 IE 進行特殊定義,請自行查閱“關于 CSS Hack 的說明”;
5. 勿使用冗余低效的 CSS 寫法,例如: ul li a span { ... }
6. 慎用 !important 。其次,避免在CSS中使用@import,嵌套不要超過一層;
7. 建議使用在 class/id 名稱中的詞語:
7.1 ) 表示狀態:a->active
7.2 ) 表示結構:h->header,c->content,f->footer
7.3 ) 表示區域:mn->main,sd->side,nv-navigation,mu->menu
7.4 ) 表示樣式:l-list,tab,p_pop
8. 文件名、文件編碼及文件大小;
8.1 ) 文件名應該由小寫字母、數字、中劃線組成;
8.2 ) 文件建議用UTF-8編碼,使用UTF-8(非BOM),在HTML中指定UTF-8編碼,在CSS中則不需要特別指定(因為默認就是UTF-8);
8.3 ) 單個CSS文件避免過大(建議少于300行);
9. 開發過程中的未定事項,須用 [!] 標出,以便于后續討論整理;
PS:關于 CSS Hack 的說明
所有 IE瀏覽器適用: .ie_all .foo { ... }
IE6 專用: .ie6 .foo { ... }
IE7 專用: .ie7 .foo { ... }
IE8 專用: .ie8 .foo { ... }
最后總結:
規范化編碼有利于程序的后期維護,并且別人也容易理解其中意思。可能你比較習慣怎么喜歡怎么編碼的方式,但養成良好的編碼習慣是成為一位優秀前端開發人員的必備素質,相信每個人都可以養成這些并不難學的優秀習慣。為了長遠發展考慮,袁程旭建議大家應該重視這些編碼習慣。
當然,本文所述內容并不完全是絕對正確的指導,但學會了這些內容,你就學會了最基本的CSS編碼規范。可參考本文內容,結合您自己的部分編碼習慣,編寫適合您的優秀、規范代碼。
(本站CSS文件部分截圖展示)
來源: 代碼君(daimajun.com) | 歡迎分享本文,轉載請注明出處!
</div>