加載性能:
1 css壓縮:將寫好的css進(jìn)行打包壓縮,可以減少很多的體積;
2 css單一樣式:當(dāng)需要下邊距和左邊距的時(shí)候,
很多時(shí)候選擇:margin: top 0 bottom 0;
但 margin-bottom: bottom;margin-left: left;執(zhí)行的效率更高;
3 減少使用 @import, 而建議使用link, 因?yàn)楹笳咴陧撁婕虞d時(shí)一起加載,前者 是等待頁面加載完成之后再進(jìn)行加載;
選擇器性能:
CSS選擇符是從右到左進(jìn)行匹配的。當(dāng)使用后代選擇器的時(shí)候,瀏覽器會(huì)遍歷所有子元素來確定是否是指定的元素等等;
**避免使用通配規(guī)則**
如*{} 計(jì)算次數(shù)驚人!只對需要用到的元素進(jìn)行選擇
**盡量少的去對標(biāo)簽進(jìn)行選擇,而是用class**
如:#nav li{},可以為li加上nav_item的類名,如下選擇.nav_item{}
**不要去用標(biāo)簽限定ID或者類選擇符**
如:ul#nav,應(yīng)該簡化為#nav
**盡量少的去使用后代選擇器,降低選擇器的權(quán)重值**
后代選擇器的開銷是最高的,盡量將選擇器的深度降到最低,最高不要超過三層,更多的使用類來關(guān)聯(lián)每一個(gè)標(biāo)簽元素
**考慮繼承**
了解哪些屬性是可以通過繼承而來的,然后避免對這些屬性重復(fù)指定規(guī)則
渲染性能:
1.慎重使用高性能屬性:浮動(dòng)、定位;
2.盡量減少頁面重排、重繪;
重排按照css的書寫順序:
·位置:positon、top、left、z-index、float、dispay
·大?。簑idth、height、margin、padding
·文字系列: font、line-height、color、letter-spacing
·背景邊框:background、 border
·其它:anmation、transition
重繪:border、outline、background、box-shadow,能使用background-color,就盡量不要使用background;
3.去除空規(guī)則:{};
4.屬性值為0時(shí),不加單位;
5.屬性值為浮動(dòng)小數(shù)0.**,可以省略小數(shù)點(diǎn)之前的0;
6.標(biāo)準(zhǔn)化各種瀏覽器前綴:帶瀏覽器前綴的在前。標(biāo)準(zhǔn)屬性在后;
7.不使用@import前綴,它會(huì)影響css的加載速度;
8.充分利用css繼承屬性,減少代碼量;
9.抽象提取公共樣式,減少代碼量;
10.選擇器優(yōu)化嵌套,盡量避免層級過深;
11.css雪碧圖,同一頁面相近部分的小圖標(biāo),方便使用,減少頁面的請求次數(shù),但是同時(shí)圖片本身會(huì)變大,使用時(shí),優(yōu)劣考慮清楚,再使用;
12.將css文件放在頁面最上面
可維護(hù)性、健壯性:
1 將具有相同屬性的樣式抽離出來,整合并通過class在頁面中進(jìn)行使用,提高css的可維護(hù)性;
2 繼上一條,oocss也是提高css性能的途徑之一,通過定義可復(fù)用的、語義化良好的基礎(chǔ)類,然后添加到html中,這也是很多ui框架都在使用的一種方法,例如:class="btn btn-active btn-blue";
3 樣式與內(nèi)容分離:講css代碼定義到外部css中;
4 容器與樣式分離;