編寫高效整潔CSS代碼三大原則
本節(jié)向大家介紹三個(gè)編寫高效整潔CSS代碼原則,它們分別是使用Reset但并非全局Reset,良好的命名習(xí)慣和使用代碼縮寫,相信通過本文的學(xué)習(xí)你對(duì)如何編寫高效整潔CSS代碼有一定的認(rèn)識(shí)。
高效整潔CSS代碼原則
CSS學(xué)起來并不難,但在大型項(xiàng)目中,就變得難以管理,特別是不同的人在CSS代碼書寫風(fēng)格上稍有不同,團(tuán)隊(duì)上就更加難以溝通,為此總結(jié)了一些如何實(shí)現(xiàn)高效整潔的CSS代碼原則:
1.使用Reset但并非全局Reset
不同瀏覽器元素的默認(rèn)屬性有所不同,使用Reset可重置瀏覽器元素的一些默認(rèn)屬性,以達(dá)到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset:
viewsourceprint?
- *{margin:0;padding:0;}
這不僅僅因?yàn)樗蔷徛偷托实姆椒?,而且還會(huì)導(dǎo)致一些不必要的元素也重置了外邊距和內(nèi)邊距。在此建議參考YUIReset和EricMeyer的做法。我跟EricMeyer的觀點(diǎn)相同,Reset并不是一成不變的,具體還需要根據(jù)項(xiàng)目的不同需求做適當(dāng)?shù)男薷模赃_(dá)到瀏覽器的兼容和操作上的便利性。我使用的Reset如下:
viewsourceprint?
- /**清除內(nèi)外邊距**/
- body,h1,h2,h3,h4,h5,h6,hr,p,
- blockquote,/*structuralelements結(jié)構(gòu)元素*/
- dl,dt,dd,ul,ol,li,/*listelements列表元素*/
- pre,/*textformattingelements文本格式元素*/
- form,fieldset,legend,button,input,textarea,/*formelements表單元素*/
- th,td,/*tableelements表格元素*/
- img/*imgelements圖片元素*/{
- border:mediumnone;
- 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;}
#p#2.良好的CSS代碼命名習(xí)慣
無疑亂七八糟或者無語義命名的CSS代碼,誰看了都會(huì)抓狂。就像這樣的代碼:
viewsourceprint?
- .aaabb{margin:2px;color:red;}
我想即使是初學(xué)者,也不至于會(huì)在實(shí)際項(xiàng)目中如此命名一個(gè)class,但有沒有想過這樣的CSS代碼同樣是很有問題的:
viewsourceprint?
- <h1>Mynameis<spanclassspanclass="redblod">Wiky</span></h1>
問題在于如果你需要把所有原本紅色的字體改成藍(lán)色,那修改后就樣式就會(huì)變成:
viewsourceprint?
- .red{color:bule;}
這樣的命名就會(huì)很讓人費(fèi)解,同樣的命名為.leftBar的側(cè)邊欄如果需要修改成右側(cè)邊欄也會(huì)很麻煩。所以,請不要使用元素的特性(顏色,位置,大小等)來命名一個(gè)class或id,您可以選擇意義的命名如:#navigation{...},.sidebar{...},.postwrap{...}
這樣,無論你如何修改定義這些class或id的樣式,都不影響它跟HTML元素間的聯(lián)系。
另外還有一種情況,一些固定的樣式,定義后就不會(huì)修改的了,那你命名時(shí)就不用擔(dān)憂剛剛說的那種情況,如
viewsourceprint?
- .alignleft{float:left;margin-right:20px;}
- .alignright{float:right;text-align:right;margin-left:20px;}
- .clear{clear:both;text-indent:-9999px;}
那么對(duì)于這樣一個(gè)段落
viewsourceprint?
- <pclasspclass="alignleft">我是一個(gè)段落!</p>
如果需要把這個(gè)段落由原先的左對(duì)齊修改為右對(duì)齊,那么只需要修改它的className就為alignright就可以了。#p#
3.CSS代碼縮寫
CSS代碼縮寫可以提高你寫代碼的速度,精簡你的代碼量。在CSS里面有不少可以縮寫的屬性,包括margin,padding,border,font,background和顏色值等,如果您學(xué)會(huì)了代碼縮寫,原本這樣的代碼:
viewsourceprint?
- li{
- font-family:Arial,Helvetica,sans-serif;
- font-size:1.2em;
- line-height:1.4em;
- padding-top:5px;
- padding-bottom:10px;
- padding-left:5px;
- }
- 就可以縮寫為:
- viewsourceprint?li{
- font:1.2em/1.4emArial,Helvetica,sans-serif;
- padding:5px010px5px;
- }
如果您想更了解這些屬性要怎么縮寫,可以參考《常用CSS縮寫語法總結(jié)》或者下載CSS-Shorthand-Cheat-Sheet.pdf。
【編輯推薦】
- CSS代碼縮寫技巧簡明介紹
- CSS代碼結(jié)構(gòu)div和span初探
- CSS代碼高效編寫規(guī)范
- DIV CSS網(wǎng)頁制作一般流程
- DIV CSS解決不規(guī)則文字排版問題