原文:http://www.zishu.cn/blogview.asp?logID=773
最近很少寫CSS了,以後也可能寫的會很少了,所以還是想把自已的一些經驗能和大家分享一下,希望能給大家一些幫助!
這篇文章主要寫的提高網頁在客戶端浏覽器的渲染速度的CSS部分,暫時總結了10條。
1、*{} #zishu *{} 盡量避開
由於不同浏覽器對HTML標簽的解釋有差異,所以最終的網頁效果在不同的浏覽器中可能是不一樣的,為了消除這方面的風險,設計者通常會在CSS的一個始就把所有標簽的默認屬性全部去除,以達到所有簽標屬性值都統一的效果。所以就有了*通配符。*會遍歷所有的標簽;
*{margin:0; padding:0}
如果這樣寫,頁面中所有的標簽的margin全是0;padding也是0;
#zishu *{margin:0; padding:0}
如果這樣寫,在id等於zishu下邊的所有標簽的margin全是0;padding也是0;
這樣寫的問題是:
建議的的解決辦法:
2、濾鏡的一些東西不要去用
IE的一些濾鏡在FIREFOX中不支持,往往寫一些效果時你還是使用CSS HACK;而濾鏡是一個非常毫資源的東西;特別是一些羽化、陰影和一個前透明的效果;
例如一個陰影效果:
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
例子的鏈接為:http://www.zishu.cn/blogview.asp?logID=610
百姓網的登陸部分使用了陰影效果:http://shanghai.baixing.com/wo/denglu
建議的解決辦法:
一個非常好的例子,就是在今年512大地震時,很多網站一夜之間全部變成了灰色,他們只用了一行CSS代碼:
body{filter: gray;}
但,你會看會看到這些網頁非常的慢,打開後你的CPU也會飙升,不誇張的說,如果你的電腦配置差,干死你也不為過。
3、一個頁面上少用絕對定位
絕對定位(position:absolute )是網頁布局中很常用到的,特別是作一些浮動效果時,也會讓頁面看起來非常的酷。但網頁中如果使用過多的絕對定位,會讓你的網頁變得非常的慢,這一點上邊FIREFOX表現要比IE還要差。
例如:
<style>li{ position:absolute;}</style>
<ul>
<li style="left:10px; top:20px">001</li>
<li style="left:30px; top:70px">001</li>
<li style="left:40px; top:50px">001</li>
……
</ul>
建議的解決辦法:
4、background 背景圖片的平鋪
有些網頁的背景或頁面中某塊的背景通常要用到圖片的平鋪,平鋪後就會有平鋪次數的問題,如果是單次還好,如果是多次,就廢了。
舉個簡單的例子:
例一:滾動一下你的頁面,看速度怎麼樣?
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
例二:同樣效果,再試一下這個!
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
說明:測試上邊的兩個效果,你的電腦越差越明顯,如果你的電腦配置非常好,你就把上的8000px改成9000000px試一下,如果還不行,就改的更大一些,整死機別罵我!
建議的作法:
5、讓屬性盡可能多的去繼承
盡可能讓一些屬性子可以繼承父,而不是覆蓋父;
簡單的一個例子:
<style>
a:link,a:visited{color:#0000FF}
a:hover,a:active{color:#FF0000}
#zishu a:link,#zishu a:visited{ font-weight:bold}
#zishu a:hover,#zishu a:active{ font-style: italic;}
</style>
<div><a href="#">test</a><div>
<div id="zishu"><a href="#">zishu</a></div>
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
6、CSS的路徑別太深;
例如:
#zishu #info #tool #sidebar h2{ font-size:12px;}
7、能簡寫的一些就簡寫;
例如:
#zishu{pading-top:10px; padding-right:50px; padding-left:50px; padding-bottom:4px;}
改成:
#zishu{padding:10px 50px 4px 50px}
這個對渲染速度沒有影響;只是少幾個字符;
8、別放空的的class或沒有的class在HTML代碼中;
9、float 的應用
這個東西我的感覺是如果使用不當,百分百有性能問題,而且還非常的大,但實在不知道怎麼樣能弄一個例子出來;這裡只能建議大家如果不是很明白float是怎麼工作的,還是少使用為妙。
曾經因為這個把IE干死過,我寫過一個例子,雖說和這個沒有什麼太大的關系:IE之死__原來與CSS有關
10、合理的布局
為什麼這麼說呢,合理的布局,可以改變CSS的寫法以及渲染過程。