日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
CSS代碼高效編寫規(guī)范

本文和大家重點(diǎn)討論一下效的CSS代碼編寫規(guī)范,比如使用Reset但并非全局Reset,良好的命名習(xí)慣,使用多重選擇器,保持CSS的可讀性等內(nèi)容。

創(chuàng)新互聯(lián)公司是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的四川電信科技城機(jī)房服務(wù)

一些高效的CSS代碼編寫規(guī)范

CSS學(xué)起來并不難,但在大型項(xiàng)目中,就變得難以管理,特別是不同的人在CSS書寫風(fēng)格上稍有不同,團(tuán)隊(duì)上就更加難以溝通,為此總結(jié)了一些如何實(shí)現(xiàn)高效整潔的CSS代碼原則:

◆使用Reset但并非全局Reset

不同瀏覽器元素的默認(rèn)屬性有所不同,使用Reset可重置瀏覽器元素的一些默認(rèn)屬性,以達(dá)到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset:

viewsourceprint?

 
 
 
  1. 1*{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?

 
 
 
  1. 01/**清除內(nèi)外邊距**/
  2. 02body,h1,h2,h3,h4,h5,h6,hr,p,
  3. 03blockquote,/*structuralelements結(jié)構(gòu)元素*/
  4. 04dl,dt,dd,ul,ol,li,/*listelements列表元素*/
  5. 05pre,/*textformattingelements文本格式元素*/
  6. 06form,fieldset,legend,button,input,textarea,/*formelements表單元素*/
  7. 07th,td,/*tableelements表格元素*/
  8. 08img/*imgelements圖片元素*/{
  9. 09border:mediumnone;
  10. 10margin:0;
  11. 11padding:0;
  12. 12}
  13. 13/**設(shè)置默認(rèn)字體**/
  14. 14body,button,input,select,textarea{
  15. 15font:12px/1.5'宋體',tahoma,Srial,helvetica,sans-serif;
  16. 16}
  17. 17h1,h2,h3,h4,h5,h6{font-size:100%;}
  18. 18em{font-style:normal;}
  19. 19/**重置列表元素**/
  20. 20ul,ol{list-style:none;}
  21. 21/**重置超鏈接元素**/
  22. 22a{text-decoration:none;color:#333;}
  23. 23a:hover{text-decoration:underline;color:#F40;}
  24. 24/**重置圖片元素**/
  25. 25img{border:0px;}
  26. 26/**重置表格元素**/
  27. 27table{border-collapse:collapse;border-spacing:0;}

◆良好的命名習(xí)慣

無疑亂七八糟或者無語義命名的代碼,誰看了都會(huì)抓狂。就像這樣的代碼:

viewsourceprint?

 
 
 
  1. 1.aaabb{margin:2px;color:red;}

我想即使是初學(xué)者,也不至于會(huì)在實(shí)際項(xiàng)目中如此命名一個(gè)class,但有沒有想過這樣的代碼同樣是很有問題的:

viewsourceprint?

 
 
 
  1. 1

    Mynameis

  2. NowaMagic span> h1>

問題在于如果你需要把所有原本紅色的字體改成藍(lán)色,那修改后就樣式就會(huì)變成:

viewsourceprint?

 
 
 
  1. 1.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?

 
 
 
  1. 1.alignleft{float:left;margin-right:20px;}
  2. 2.alignright{float:right;text-align:right;margin-left:20px;}
  3. 3.clear{clear:both;text-indent:-9999px;}

那么對于這樣一個(gè)段落

viewsourceprint?

 
 
 
  1. 1我是一個(gè)段落! p>

如果需要把這個(gè)段落由原先的左對齊修改為右對齊,那么只需要修改它的className就為alignright就可以了。#p#

◆代碼縮寫

CSS代碼縮寫可以提高你寫代碼的速度,精簡你的代碼量。在CSS里面有不少可以縮寫的屬性,包括margin,padding,border,font,background和顏色值等,如果您學(xué)會(huì)了代碼縮寫,原本這樣的代碼:

viewsourceprint?

 
 
 
  1. 1li{
  2. 2font-family:Arial,Helvetica,sans-serif;
  3. 3font-size:1.2em;
  4. 4line-height:1.4em;
  5. 5padding-top:5px;
  6. 6padding-bottom:10px;
  7. 7padding-left:5px;
  8. 8}

就可以縮寫為:

viewsourceprint?

 
 
 
  1. 1li{
  2. 2font:1.2em/1.4emArial,Helvetica,sans-serif;
  3. 3padding:5px010px5px;
  4. 4}

如果您想更了解這些屬性要怎么縮寫,可以參考《常用CSS縮寫語法總結(jié)》或者下載CSS-Shorthand-Cheat-Sheet.pdf。

◆利用CSS繼承

如果頁面中父元素的多個(gè)子元素使用相同的樣式,那***把他們相同的樣式定義在其父元素上,讓它們繼承這些CSS樣式。這樣你可以很好的維護(hù)你的代碼,并且還可以減少代碼量。那么本來這樣的代碼:

viewsourceprint?

 
 
 
  1. 1#containerli{font-family:Georgia,serif;}
  2. 2#containerp{font-family:Georgia,serif;}
  3. 3#containerh1{font-family:Georgia,serif;}

就可以簡寫成:

viewsourceprint?

 
 
 
  1. 1#container{font-family:Georgia,serif;}

#p#◆使用多重選擇器

你可以合并多個(gè)CSS選擇器為一個(gè),如果他們有共同的樣式的話。這樣做不但代碼簡潔且可為你節(jié)省時(shí)間和空間。如:

viewsourceprint?

 
 
 
  1. 1h1{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}
  2. 2h2{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}
  3. 3h3{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}

可以合并為

viewsourceprint?

 
 
 
  1. 1h1,h2,h3{font-family:Arial,Helvetica,sans-serif;font-weight:normal;}

◆適當(dāng)?shù)拇a注釋

代碼注釋可以讓別人更容易讀懂你的代碼,且合理的組織代碼注釋,可使得結(jié)構(gòu)更加清晰。你可以選擇做的樣式表的開始添加目錄:

viewsourceprint?

 
 
 
  1. 1/*------------------------------------
  2. 21.Reset
  3. 32.Header
  4. 43.Content
  5. 54.SideBar
  6. 65.Footer
  7. 7-----------------------------------*/

如此你代碼的結(jié)構(gòu)就一目了然,你可以容易的查找和修改代碼。

而對于代碼的主內(nèi)容,也應(yīng)適當(dāng)?shù)募右詣澐?,甚至在有必要的地方在對代碼加以注釋說明,這樣也有利于團(tuán)隊(duì)開發(fā):

viewsourceprint?

 
 
 
  1. 01/***Header***/
  2. 02#header{height:145px;position:relative;}
  3. 03#headerh1{width:324px;margin:45px0020px;float:left;height:72px;}
  4. 04
  5. 05/***Content***/
  6. 06#content{background:#fff;width:650px;float:left;
  7. min-height:600px;overflow:hidden;}
  8. 07#contenth1{color:#F00}/*設(shè)置字體顏色*/
  9. 08#content.posts{overflow:hidden;}
  10. 09#content.recent{margin-bottom:20px;
  11. border-bottom:1pxsolid#f3f3f3;position:relative;
  12. overflow:hidden;}
  13. 10
  14. 11/***Footer***/
  15. 12#footer{clear:both;padding:50px5px0;overflow:hidden;}
  16. 13#footerh4{color:#b99d7f;
  17. font-family:Arial,Helvetica,sans-serif;font-size:1.1em;}

◆給你的CSS代碼排序

如果代碼中的屬性都能按照字母排序,那查找修改的時(shí)候就能更加快速:

viewsourceprint?

 
 
 
  1. 01/***樣式屬性按字母排序***/
  2. 02div{
  3. 03background-color:#3399cc;
  4. 04color:#666;
  5. 05font:1.2em/1.4emArial,Helvetica,sans-serif;
  6. 06height:300px;
  7. 07margin:10px5px;
  8. 08padding:5px010px5px;
  9. 09width:30%;
  10. 10z-index:10;
  11. 11}

#p#◆保持CSS的可讀性

書寫可讀的CSS將會(huì)使得更容易查找和修改樣式。對于以下兩種情況,哪種可讀性更高,我想不言而明。

viewsourceprint?

 
 
 
  1. 01/***每個(gè)樣式屬性寫一行***/
  2. 02div{
  3. 03background-color:#3399cc;
  4. 04color:#666;
  5. 05font:1.2em/1.4emArial,Helvetica,sans-serif;
  6. 06height:300px;
  7. 07margin:10px5px;
  8. 08padding:5px010px5px;
  9. 09width:30%;
  10. 10z-index:10;
  11. 11}
  12. 12
  13. 13/***所有的樣式屬性寫在同一行***/
  14. 14div{background-color:#3399cc;color:#666;
  15. font:1.2em/1.4emArial,Helvetica,sans-serif;height:300px;
  16. margin:10px5px;padding:5px010px5px;width:30%;z-index:10;}

當(dāng)對于一些樣式屬性較少的選擇器,我會(huì)寫到一行:

viewsourceprint?

 
 
 
  1. 1/***選擇器屬性少的寫在同一行***/
  2. 2div{background-color:#3399cc;color:#666;}

對于這個(gè)規(guī)則并非硬性規(guī)定,但無論您采用哪種寫法,我的建議是始終保持代碼一致。屬性多的分行寫,屬性少于3個(gè)可以寫一行。

◆選擇更優(yōu)的樣式屬性值

CSS中有些屬性采用不同的屬性值,雖然達(dá)到的效果差不多,當(dāng)性能上卻存在著差異,如:

區(qū)別在于border:0把border設(shè)為0px,雖然在頁面上看不見,但按border默認(rèn)值理解,瀏覽器依然對border-width/border-color進(jìn)行了渲染,即已經(jīng)占用了內(nèi)存值。

而border:none把border設(shè)為“none”即沒有,瀏覽器解析“none”時(shí)將不作出渲染動(dòng)作,即不會(huì)消耗內(nèi)存值。所以建議使用border:none;

同樣的,display:none隱藏對象瀏覽器不作渲染,不占用內(nèi)存。而visibility:hidden則會(huì)。

#p#

◆使用 代替@import

首先,@import不屬于XHTML標(biāo)簽,也不是Web標(biāo)準(zhǔn)的一部分,它對于較早期的瀏覽器兼容也不高,并且對于網(wǎng)站的性能有某些負(fù)面的影響。具體可以參考《高性能網(wǎng)站設(shè)計(jì):不要使用@import》。所以,請避免使用@import

◆使用外部樣式表

這個(gè)原則始終是一個(gè)很好的設(shè)計(jì)實(shí)踐。不單可以更易于維護(hù)修改,更重要的是使用外部文件可以提高頁面速度,因?yàn)镃SS文件都能在瀏覽器中產(chǎn)生緩存。內(nèi)置在HTML文檔中的CSS則會(huì)在每次請求中隨HTML文檔重新下載。所以,在實(shí)際應(yīng)用中,沒有必要把CSS代碼內(nèi)置在HTML文檔中:

viewsourceprint?

 
 
 
  1. 1
  2. 2#container{..}
  3. 3#sidebar{..}
  4. 4 style>

viewsourceprint?

 
 
 
  1. 1

而是使用 導(dǎo)入外部樣式表:

viewsourceprint?

 
 
 
  1. 1

◆避免使用CSS表達(dá)式(Expression)

CSS表達(dá)式是動(dòng)態(tài)設(shè)置CSS屬性的強(qiáng)大(但危險(xiǎn))方法。InternetExplorer從第5個(gè)版本開始支持CSS表達(dá)式。下面的例子中,使用CSS表達(dá)式可以實(shí)現(xiàn)隔一個(gè)小時(shí)切換一次背景顏色:

viewsourceprint?

 
 
 
  1. 1background-color:expression((newDate()).getHours()%
  2. 2?"#B8D4FF":"#F08A00");

如上所示,expression中使用了JavaScript表達(dá)式。CSS屬性根據(jù)JavaScript表達(dá)式的計(jì)算結(jié)果來設(shè)置。

表達(dá)式的問題就在于它的計(jì)算頻率要比我們想象的多。不僅僅是在頁面顯示和縮放時(shí),就是在頁面滾動(dòng)、乃至移動(dòng)鼠標(biāo)時(shí)都會(huì)要重新計(jì)算一次。給CSS表達(dá)式增加一個(gè)計(jì)數(shù)器可以跟蹤表達(dá)式的計(jì)算頻率。在頁面中隨便移動(dòng)鼠標(biāo)都可以輕松達(dá)到10000次以上的計(jì)算量。

如果必須使用CSS表達(dá)式,一定要記住它們要計(jì)算成千上萬次并且可能會(huì)對你頁面的性能產(chǎn)生影響。所以,在非不得已,請避免使用CSS表達(dá)式。

◆代碼壓縮

當(dāng)你決定把網(wǎng)站項(xiàng)目部署到網(wǎng)絡(luò)上,那你就要考慮對CSS進(jìn)行壓縮,出去注釋和空格,以使得網(wǎng)頁加載得更快。壓縮您的代碼,可以采用一些工具,如YUICompressor利用它可精簡CSS代碼,減少文件大小,以獲得更高的加載速度。


當(dāng)前名稱:CSS代碼高效編寫規(guī)范
分享網(wǎng)址:http://www.dlmjj.cn/article/dpcdcdc.html