提升網頁css渲染的小建議

 1.
      十六進制的顏色值對位數與大小寫

      編寫十六進制顏色值時你可能會用小寫字母或省略成3位數,關於這寫法沒找到確實的數據證實對瀏覽器的渲染效率是否有影響,但十六進制的顏色值默認標準是大寫及6位數標註。在未知狀況下不但願冒險而下降了渲染的效率。
          * 不同意 - color:#f3a;
          * 建議用 - color:#FF33AA;

   2.
      display與visibility的差別

      他們用於設置或檢索是否顯示對象。display隱藏對象不保留物理空間,visibility爲隱藏對象保留佔據的物理空間。當瀏覽器渲染被佔據的物理空間時,會有所消耗資源。
          * 不同意 - visibility:hidden;
          * 建議用 - display:none;

   3.
      border:none;與border:0;的區別

      和display與visibility的關係相似,分別不保留與保留空間。更多的是border:0;儘管能夠隱藏掉邊框,但它會爲你保留border-color/border-style的使用權。
          * 不同意 - border:0;
          * 建議用 - border:none;

   4.
      不宜太小的背景圖片平鋪

      一張寬高1px的背景圖片,雖然文件體積很是之小,但渲染寬高500px的板塊須要 重複平鋪250000(貳拾伍萬)次 。提升背景圖片渲染效率跟圖片尺寸及體積有關,最大的圖片文件體積保持約70KB。
          * 不同意 - 寬高8px如下的平鋪背景圖片
          * 建議用 - 衡量適中體積及尺寸的背景圖片

   5.
      IE的濾鏡

      IE的濾鏡除了比較消耗資源外也有兼容性問題。當中有令PNG透明的濾鏡,可採用GIF或JPG似透非透的辦法來避免使用此濾鏡。建議只在IE6應用GIF透明,由於IE7以上已經支持了PNG透明。
          * 不同意,濫用IE濾鏡由於消耗資源外也有兼容性問題。
          * 建議用,最好選擇其它方法能避免使用濾鏡。

   6.
      *{ margin:0; padding:0;}避免瀏覽器樣式差別

      *號通配符把全部標籤都初始化一遍,瀏覽器的渲染消耗必定的資源。有部分在標籤在不一樣瀏覽器上幾乎無差別,或是某些已經不推薦使用的標籤(由於你不會去用它),它們不需通配符要從新初始化一遍這樣作能節省一點資源。
          * 不同意,使用*號通配符
          * 不同意,div span button b table等標籤歸入通配符控制內外填充樣式
          * 建議用,有選擇性地使用通配符控制內外填充樣式。

   7.
      不要添加額外的標籤來描述class或id

      若是你有一個選擇器是以id做爲關鍵選擇符,請不要添加多餘標籤名上去。由於ID是惟一的,你不要爲了一個不存在的理由而下降了匹配的效率。
          * 不同意 - button#backButton { }
          * 不同意 - .menu-left #newMenuIcon { }
          * 建議用 - #backButton { }
          * 建議用 - #newMenuIcon { }

   8.
      儘可能選擇最特殊的類來存放選擇器

      下降系統效率的一個最大緣由是咱們在標籤類中用了過多的選擇符。經過添加 class 到元素,咱們能夠將類別進行再細分爲 class 類,這樣就不用爲了一個標籤浪費時間去匹配過多的選擇符了。
          * 不同意 - treeitem[mailfolder="true"] > treerow > treecell { }
          * 建議用 - .treecell-mailfolder { }

   9.
      避免子孫選擇符

      子孫選擇符是CSS中最耗資源的選擇符。他真的是很是的耗資源,尤爲是在選擇器使用標籤類或通用類的時候。不少狀況中,咱們真正想要的是子選擇符。除非有明確說明,在 UI CSS 中是嚴禁使用子孫選擇符的。
          * 不同意 - treehead treerow treecell { }
          * 好一點,但仍是不行(參照下一條) - treehead > treerow > treecell { }

  10.
      標籤類中不要包含子選擇符

      不要在標籤類中使用子選擇符。不然,每次元素的出現,都會額外地增長匹配時間。(特別是當選擇器彷佛多半會被匹配的狀況下)
          * 不同意 - treehead > treerow > treecell { }
          * 建議用 - .treecell-header { }

  11.
      留意全部子選擇符的使用

      當心地使用子選擇符。若是你能想出一個的不使用他的方法,那麼就不要使用。特別是在 RDF 樹和菜單會頻繁地使用子選擇符,像這樣。
          * 不同意 - treeitem[IsImapServer="true"] > treerow > .tree-folderpane-icon { }

      請記住 RDF 的屬性是能夠在模板中被複制的!利用這一點,咱們能夠複製那些想基於該屬性改變的子 XUL 元素上的 RDF 屬性。
          * 建議用 - .tree-folderpane-icon[IsImapServer="true"] { }



演繹原文: http://blog.gulu77.com/?p=47
相關文章
相關標籤/搜索