最近很少寫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;
這樣寫的問題是:
- 遍曆會消耗很多的時間,如果你的HTML代碼寫的不規範或是某一簽標沒有必合,這個時間可能還會更長;
- 很多的標籤本來就沒有這個屬性或屬性本身就是統一的,那麼更給設定一次,也有時間的開消;
建議的的解決辦法:
- 不要去使用生僻的標籤,因為這些標籤往往在不同瀏覽器中解釋出來的效果不一樣;所以你要儘可能的去使用那些常用的標籤;
- 不要使用*;而是把你常用到的這些標籤進行處理;例如:body,li,p,h1{margin:0; padding:0}
2、濾鏡的一些東西不要去用
IE的一些濾鏡在FIREFOX中不支援,往往寫一些效果時你還是使用CSS HACK;而濾鏡是一個非常毫資源的東西;特別是一些羽化、陰影和一個前透明的效果;
例如一個陰影製作效果:
以下是HTML網頁特效代碼,點擊運行按鈕可查看效果:
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
例子的連結為:http://www.zishu.cn/blogview.asp?logID=610
百姓網的登陸部分使用了陰影製作效果:http://shanghai.baixing.com/wo/denglu
建議的解決辦法:
- 能不使用就不要使用,一方面相容問題;很多效果只能在IE中使用;
- 就本例而言,如果非要這樣在的效果,建議用圖片作背景;(只說最佳化速度,實際應用還是可以小部分用,有人可能會說,用圖片還多一個HTTP請求呢,呵呵……)
一個非常好的例子,就是在今年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>
建議的解決辦法:
- 儘可能少用,這個少用的值是多少,也沒有一個非常好的值來說明;還要看絕定定位這個標籤裡邊的內容的多少;在這裡我只能說,這樣寫會有效能問題,少用。
- 如果能用變通實現同樣的效果,就用變通的辦法。