6. 適當(dāng)?shù)拇a注釋
代碼注釋可以讓別人更容易讀懂你的代碼,且合理的組織代碼注釋?zhuān)墒沟媒Y(jié)構(gòu)更加清晰。你可以選擇做的樣式表的開(kāi)始添加目錄:
/*------------------------------------
1. Reset
2. Header
3. Content
4. SideBar
5. Footer
----------------------------------- */
如此你代碼的結(jié)構(gòu)就一目了然,你可以容易的查找和修改代碼。
而對(duì)于代碼的主內(nèi)容,也應(yīng)適當(dāng)?shù)募右詣澐郑踔猎谟斜匾牡胤皆趯?duì)代碼加以注釋說(shuō)明,這樣也有利于團(tuán)隊(duì)開(kāi)發(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代碼排序
如果代碼中的屬性都能按照字母排序,那查找修改的時(shí)候就能更加快速:
/*** 樣式屬性按字母排序 ***/
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的可讀性
書(shū)寫(xiě)可讀的CSS將會(huì)使得更容易查找和修改樣式。對(duì)于以下兩種情況,哪種可讀性更高,我想不言而明。
/*** 每個(gè)樣式屬性寫(xiě)一行 ***/
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;
}
/*** 所有的樣式屬性寫(xiě)在同一行 ***/
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)對(duì)于一些樣式屬性較少的選擇器,我會(huì)寫(xiě)到一行:
/*** 選擇器屬性少的寫(xiě)在同一行 ***/
div{ background-color:#3399cc; color:#666;}
對(duì)于這個(gè)規(guī)則并非硬性規(guī)定,但無(wú)論您采用哪種寫(xiě)法,我的建議是始終保持代碼一致。屬性多的分行寫(xiě),屬性少于3個(gè)可以寫(xiě)一行。
9. 選擇更優(yōu)的樣式屬性值
CSS中有些屬性采用不同的屬性值,雖然達(dá)到的效果差不多,當(dāng)性能上卻存在著差異,如
區(qū)別在于border:0把border設(shè)為0px,雖然在頁(yè)面上看不見(jiàn),但按border默認(rèn)值理解,瀏覽器依然對(duì)border-width/border-color進(jìn)行了渲染,即已經(jīng)占用了內(nèi)存值。
而border:none把border設(shè)為"none"即沒(méi)有,瀏覽器解析"none"時(shí)將不作出渲染動(dòng)作,即不會(huì)消耗內(nèi)存值。所以建議使用border:none;
同樣的,display:none隱藏對(duì)象瀏覽器不作渲染,不占用內(nèi)存。而visibility:hidden則會(huì)。
10. 使用<link>代替@import
首先,@import不屬于XHTML標(biāo)簽,也不是Web標(biāo)準(zhǔn)的一部分,它對(duì)于較早期的瀏覽器兼容也不高,并且對(duì)于網(wǎng)站的性能有某些負(fù)面的影響。
11. 使用外部樣式表
這個(gè)原則始終是一個(gè)很好的設(shè)計(jì)實(shí)踐。不單可以更易于維護(hù)修改,更重要的是使用外部文件可以提高頁(yè)面速度,因?yàn)镃SS文件都能在瀏覽器中產(chǎn)生緩存。內(nèi)置在HTML文檔中的CSS則會(huì)在每次請(qǐng)求中隨HTML文檔重新下載。所以,在實(shí)際應(yīng)用中,沒(méi)有必要把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表達(dá)式(Expression)
CSS表達(dá)式是動(dòng)態(tài)設(shè)置CSS屬性的強(qiáng)大(但危險(xiǎn))方法。Internet Explorer從第5個(gè)版本開(kāi)始支持CSS表達(dá)式。下面的例子中,使用CSS表達(dá)式可以實(shí)現(xiàn)隔一個(gè)小時(shí)切換一次背景顏色:
background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
如上所示,expression中使用了JavaScript表達(dá)式。CSS屬性根據(jù)JavaScript表達(dá)式的計(jì)算結(jié)果來(lái)設(shè)置。
表達(dá)式的問(wèn)題就在于它的計(jì)算頻率要比我們想象的多。不僅僅是在頁(yè)面顯示和縮放時(shí),就是在頁(yè)面滾動(dòng)、乃至移動(dòng)鼠標(biāo)時(shí)都會(huì)要重新計(jì)算一次。給CSS表達(dá)式增加一個(gè)計(jì)數(shù)器可以跟蹤表達(dá)式的計(jì)算頻率。在頁(yè)面中隨便移動(dòng)鼠標(biāo)都可以輕松達(dá)到10000次以上的計(jì)算量。
如果必須使用CSS表達(dá)式,一定要記住它們要計(jì)算成千上萬(wàn)次并且可能會(huì)對(duì)你頁(yè)面的性能產(chǎn)生影響。所以,在非不得已,請(qǐng)避免使用CSS表達(dá)式。
13. 代碼壓縮
當(dāng)你決定把網(wǎng)站項(xiàng)目部署到網(wǎng)絡(luò)上,那你就要考慮對(duì)CSS進(jìn)行壓縮,出去注釋和空格,以使得網(wǎng)頁(yè)加載得更快。壓縮您的代碼,可以采用一些工具,如YUI Compressor,利用它可精簡(jiǎn)CSS代碼,減少文件大小,以獲得更高的加載速度。