高效整潔CSS代碼原則 (上)
CSS學(xué)起來(lái)并不難,但在大型項(xiàng)目中,就變得難以管理,特別是不同的人在CSS書(shū)寫(xiě)風(fēng)格上稍有不同,團(tuán)隊(duì)上就更加難以溝通,為此總結(jié)了一些如何實(shí)現(xiàn)高效整潔的CSS代碼原則:
1. 使用Reset但并非全局Reset
不同瀏覽器元素的默認(rèn)屬性有所不同,使用Reset可重置瀏覽器元素的一些默認(rèn)屬性,以達(dá)到瀏覽器的兼容。但需要注意的是,請(qǐng)不要使用全局Reset:
- { margin:0; padding:0; }
 
這不僅僅因?yàn)樗蔷徛偷托实姆椒?,而且還會(huì)導(dǎo)致一些不必要的元素也重置了外邊距和內(nèi)邊距。在此建議參考YUI Reset和Eric Meyer的做法。
- /** 清除內(nèi)外邊距 **/
 - body, h1, h2, h3, h4, h5, h6, hr, p,
 - blockquote, /* structural elements 結(jié)構(gòu)元素 */
 - dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
 - pre, /* text formatting elements 文本格式元素 */
 - form, fieldset, legend, button, input, textarea, /* form elements 表單元素 */
 - th, td, /* table elements 表格元素 */
 - img/* img elements 圖片元素 */{
 - border:medium none;
 - margin: 0;
 - padding: 0;
 - }
 - /** 設(shè)置默認(rèn)字體 **/
 - body,button, input, select, textarea {
 - font: 12px/1.5 '宋體',tahoma, Srial, helvetica, sans-serif; }
 - h1, h2, h3, h4, h5, h6 { font-size: 100%; }
 - em{font-style:normal;}
 - /** 重置列表元素 **/
 - ul, ol { list-style: none; }
 - /** 重置超鏈接元素 **/
 - a { text-decoration: none; color:#333;}
 - a:hover { text-decoration: underline; color:#F40; }
 - /** 重置圖片元素 **/
 - img{ border:0px;}
 - /** 重置表格元素 **/
 - table { border-collapse: collapse; border-spacing: 0; }
 
2. 良好的命名習(xí)慣
無(wú)疑亂七八糟或者無(wú)語(yǔ)義命名的代碼,誰(shuí)看了都會(huì)抓狂。就像這樣的代碼:
- .aaabb{margin:2px;color:red;}
 
我想即使是初學(xué)者,也不至于會(huì)在實(shí)際項(xiàng)目中如此命名一個(gè)class,但有沒(méi)有想過(guò)這樣的代碼同樣是很有問(wèn)題的:
- <h1>My name is <span class="red blod">Wiky</span></h1>
 
問(wèn)題在于如果你需要把所有原本紅色的字體改成藍(lán)色,那修改后就樣式就會(huì)變成:
- .red{color:bule;}
 
這樣的命名就會(huì)很讓人費(fèi)解,同樣的命名為.leftBar的側(cè)邊欄如果需要修改成右側(cè)邊欄也會(huì)很麻煩。所以,請(qǐng)不要使用元素的特性(顏色,位置,大小等)來(lái)命名一個(gè)class或id,您可以選擇意義的命名如:
- #navigation{...}
 - .sidebar{...}
 - .postwrap{...}
 
這樣,無(wú)論你如何修改定義這些class或id的樣式,都不影響它跟HTML元素間的聯(lián)系。
另外還有一種情況,一些固定的樣式,定義后就不會(huì)修改的了,那你命名時(shí)就不用擔(dān)憂(yōu)剛剛說(shuō)的那種情況,如
- .alignleft{float:left;margin-right:20px;}
 - .alignright{float:right;text-align:right;margin-left:20px;}
 - .clear{clear:both;text-indent:-9999px;}
 
那么對(duì)于這樣一個(gè)段落
- <p class="alignleft">我是一個(gè)段落!</p>
 
如果需要把這個(gè)段落由原先的左對(duì)齊修改為右對(duì)齊,那么只需要修改它的className就為alignright就可以了。
3. 代碼縮寫(xiě)
CSS代碼縮寫(xiě)可以提高你寫(xiě)代碼的速度,精簡(jiǎn)你的代碼量。在CSS里面有不少可以縮寫(xiě)的屬性,包括margin,padding,border,font,background和顏色值等,如果您學(xué)會(huì)了代碼縮寫(xiě),原本這樣的代碼:
- li{
 - font-family:Arial, Helvetica, sans-serif;
 - font-size: 1.2em;
 - line-height: 1.4em;
 - padding-top:5px;
 - padding-bottom:10px;
 - padding-left:5px;
 - }
 
就可以縮寫(xiě)為:
- li{
 - font: 1.2em/1.4em Arial, Helvetica, sans-serif;
 - padding:5px 0 10px 5px;
 - }
 
4. 利用CSS繼承
如果頁(yè)面中父元素的多個(gè)子元素使用相同的樣式,那最好把他們相同的樣式定義在其父元素上,讓它們繼承這些CSS樣式。這樣你可以很好的維護(hù)你的代碼,并且還可以減少代碼量。那么本來(lái)這樣的代碼:
- #container li{ font-family:Georgia, serif; }
 - #container p{ font-family:Georgia, serif; }
 - #container h1{font-family:Georgia, serif; }
 
就可以簡(jiǎn)寫(xiě)成:
- #container{ font-family:Georgia, serif; }
 
5. 使用多重選擇器
你可以合并多個(gè)CSS選擇器為一個(gè),如果他們有共同的樣式的話(huà)。這樣做不但代碼簡(jiǎn)潔且可為你節(jié)省時(shí)間和空間。如:
- h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
 - h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
 - h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
 
可以合并為:
- h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
 
因?yàn)楸疚慕榻B的比較詳細(xì),所以分兩篇給大家介紹,請(qǐng)看下一篇...
【編輯推薦】















 
 
 



 
 
 
 