6. 適當(dāng)?shù)拇a注釋
代碼注釋可以讓別人更容易讀懂你的代碼,且合理的組織代碼注釋,可使得結(jié)構(gòu)更加清晰。你可以選擇做的樣式表的開始添加目錄:
/*------------------------------------
1. Reset
2. Header
3. Content
4. SideBar
5. Footer
----------------------------------- */
如此你代碼的結(jié)構(gòu)就一目了然,你可以容易的查找和修改代碼。
而對于代碼的主內(nèi)容,也應(yīng)適當(dāng)?shù)募右詣澐,甚至在有必要的地方在對代碼加以注釋說明,這樣也有利于團隊開發(fā):
/*** Header ***/
#header{ height:145px; position:relative; }
#header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;}
/*** Content ***/
#content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;}
#content h1{color:#F00}/* 設(shè)置字體顏色 */
#content .posts{ overflow:hidden; }
#content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; }
/*** Footer ***/
#footer{ clear:both; padding:50px 5px 0; overflow:hidden;}
#footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }
7. 給你的CSS代碼排序
如果代碼中的屬性都能按照字母排序,那查找修改的時候就能更加快速:
/*** 樣式屬性按字母排序 ***/
div{
background-color:#3399cc;
color:#666;
font:1.2em/1.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 0 10px 5px;
width:30%;
z-index:10;
}
8. 保持CSS的可讀性
書寫可讀的CSS將會使得更容易查找和修改樣式。對于以下兩種情況,哪種可讀性更高,我想不言而明。
/*** 每個樣式屬性寫一行 ***/
div{
background-color:#3399cc;
color:#666;
font: 1.2em/1.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 0 10px 5px;
width:30%;
z-index:10;
}
/*** 所有的樣式屬性寫在同一行 ***/
div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }
當(dāng)對于一些樣式屬性較少的選擇器,我會寫到一行:
/*** 選擇器屬性少的寫在同一行 ***/
div{ background-color:#3399cc; color:#666;}
對于這個規(guī)則并非硬性規(guī)定,但無論您采用哪種寫法,我的建議是始終保持代碼一致。屬性多的分行寫,屬性少于3個可以寫一行。
9. 選擇更優(yōu)的樣式屬性值
CSS中有些屬性采用不同的屬性值,雖然達到的效果差不多,當(dāng)性能上卻存在著差異,如
區(qū)別在于border:0把border設(shè)為0px,雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經(jīng)占用了內(nèi)存值。
而border:none把border設(shè)為"none"即沒有,瀏覽器解析"none"時將不作出渲染動作,即不會消耗內(nèi)存值。所以建議使用border:none;
同樣的,display:none隱藏對象瀏覽器不作渲染,不占用內(nèi)存。而visibility:hidden則會。
10. 使用<link>代替@import
首先,@import不屬于XHTML標(biāo)簽,也不是Web標(biāo)準(zhǔn)的一部分,它對于較早期的瀏覽器兼容也不高,并且對于網(wǎng)站的性能有某些負面的影響。
11. 使用外部樣式表
這個原則始終是一個很好的設(shè)計實踐。不單可以更易于維護修改,更重要的是使用外部文件可以提高頁面速度,因為CSS文件都能在瀏覽器中產(chǎn)生緩存。內(nèi)置在HTML文檔中的CSS則會在每次請求中隨HTML文檔重新下載。所以,在實際應(yīng)用中,沒有必要把CSS代碼內(nèi)置在HTML文檔中:
<style type="text/css" >
#container{ .. }
#sidebar{ .. }
</style>
而是使用<link>導(dǎo)入外部樣式表:<link rel="stylesheet" type="text/css" href="css/styles.css" />
12. 避免使用CSS表達式(Expression)
CSS表達式是動態(tài)設(shè)置CSS屬性的強大(但危險)方法。Internet Explorer從第5個版本開始支持CSS表達式。下面的例子中,使用CSS表達式可以實現(xiàn)隔一個小時切換一次背景顏色:
background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
如上所示,expression中使用了JavaScript表達式。CSS屬性根據(jù)JavaScript表達式的計算結(jié)果來設(shè)置。
表達式的問題就在于它的計算頻率要比我們想象的多。不僅僅是在頁面顯示和縮放時,就是在頁面滾動、乃至移動鼠標(biāo)時都會要重新計算一次。給CSS表達式增加一個計數(shù)器可以跟蹤表達式的計算頻率。在頁面中隨便移動鼠標(biāo)都可以輕松達到10000次以上的計算量。
如果必須使用CSS表達式,一定要記住它們要計算成千上萬次并且可能會對你頁面的性能產(chǎn)生影響。所以,在非不得已,請避免使用CSS表達式。
13. 代碼壓縮
當(dāng)你決定把網(wǎng)站項目部署到網(wǎng)絡(luò)上,那你就要考慮對CSS進行壓縮,出去注釋和空格,以使得網(wǎng)頁加載得更快。壓縮您的代碼,可以采用一些工具,如YUI Compressor,利用它可精簡CSS代碼,減少文件大小,以獲得更高的加載速度。