怎么樣能寫好高效率的CSS呢,一些初學(xué)者不注意的很多細(xì)小問題,當(dāng)這些問題集中爆發(fā),那么問題就大了。
1、*{ margin:0; padding:0;} 請(qǐng)不要使用全局Reset:
既然是全局的定義,那么他會(huì)吧所有標(biāo)簽都處理一遍,增加了瀏覽器解析的時(shí)間。有些標(biāo)簽其實(shí)沒有必要處理,
2、display與visibility的差異
他們用于設(shè)置或檢索是否顯示對(duì)象。display隱藏對(duì)象不保留物理空間,visibility為隱藏對(duì)象保留占據(jù)的物理空間。當(dāng)瀏覽器渲染被占據(jù)的物理空間時(shí),會(huì)有所消耗資源。
所以不贊成用visibility:hidden;
3、border:none;與border:0;的區(qū)別
有些同學(xué)肯定沒注意過這兩個(gè)代碼的區(qū)別,在HTML顯示肯定是一樣的,但是從基本上來說他們不一樣 用border:0雖然現(xiàn)實(shí)上和none沒什么區(qū)別,但是它會(huì)保留color、style 這兩個(gè)屬性
所以不贊成用border:0;
4、不宜過小的背景圖片平鋪
一張寬高1px的背景圖片,雖然文件體積非常之小,但渲染寬高500px的板塊需要重復(fù)平鋪2500次。提高背景圖片渲染效率跟圖片尺寸及體積有關(guān),最大的圖片文件體積保持約70KB。
所以不贊成用寬高8px以下的平鋪背景圖片
5、IE的濾鏡
IE的濾鏡除了比較消耗資源外也有兼容性問題。當(dāng)中有令PNG透明的濾鏡,可采用 GIF或JPG似透非透的辦法來避免使用此濾鏡。建議只在IE6應(yīng)用GIF透明,因?yàn)镮E7以上 已經(jīng)支持了PNG透明。
不贊成用IE的濾鏡
6、十六進(jìn)制的顏色值對(duì)位數(shù)與大小寫
編寫十六進(jìn)制顏色值時(shí)你可能會(huì)用小寫字母或省略成3位數(shù),關(guān)于這寫法沒找到確實(shí)的數(shù)據(jù)證明對(duì)瀏覽器的渲染效率是否有影響,但十六進(jìn)制的顏色值默認(rèn)標(biāo)準(zhǔn)是大寫及6位數(shù)標(biāo)注。在未知情況下不希望冒險(xiǎn)而降低了渲染的效率。
不贊成用 color:#f3a;建議用 color:#FF33AA;
7、不要添加額外的標(biāo)簽來描述class或id
如果你有一個(gè)選擇器是以id作為關(guān)鍵選擇符,請(qǐng)不要添加多余標(biāo)簽名上去。因?yàn)镮D是唯一的,你不要為了一個(gè)不存在的理由而降低了匹配的效率。
8、盡量選擇最特殊的類來存放選擇器
降低系統(tǒng)效率的一個(gè)最大原因是我們?cè)跇?biāo)簽類中用了過多的選擇符。通過添加 class 到元素,我們可以將類別進(jìn)行再細(xì)分為 class 類,這樣就不用為了一個(gè)標(biāo)簽浪費(fèi) 時(shí)間去匹配過多的選擇符了。
9、避免子孫選擇符
子孫選擇符是CSS中最耗資源的選擇符。他真的是非常的耗資源,尤其是在選擇器 使用標(biāo)簽類或通用類的時(shí)候。很多情況中,我們真正想要的是子選擇符。除非有明確說 明,在 UI CSS 中是嚴(yán)禁使用子孫選擇符的。
10、代碼縮寫
這個(gè)沒什么好說的了,相信大家都了解吧,如果不清楚的話,以后我在寫一篇關(guān)于代碼縮寫的文章