1. 程式人生 > >css選擇器的渲染機制

css選擇器的渲染機制

css樣式表,對每條規則是按照從右到左匹配的。

示例1:

*{ }

    *萬用字元 將匹配所有的元素,瀏覽器進行渲染的時候需要計算每一個元素,效率最低。

示例2:

ul#nav{  }

    在頁面中每個指定的id 只能對應一個元素,沒必要額外新增限定符,加了反而效率低。同事也不要用具體的標籤限定類選擇器,而是對類名進行擴充套件。例如把ul.nav改成.main_nav更好。

示例3:

#ul li{
    color:#e5e5e5;
}

    瞭解這方面的知識後,我們知道這個之前看似高效地規則實際開銷相當高,瀏覽器必須遍歷頁面上每個li元素並確定其父元素的id是否為nav。

小結:

  1. 避免使用通配規則。如 *{} 計算次數驚人!只對需要用到的元素進行選擇
  2. 儘量少的去對標籤進行選擇,而是用class。如:#nav li{},可以為li加上nav_item的類名,如下選擇.nav_item{}
  3. 不要去用標籤限定ID或者類選擇符。如:ul#nav,應該簡化為#nav
  4. 儘量少的去使用後代選擇器,降低選擇器的權重值。後代選擇器的開銷是最高的,儘量將選擇器的深度降到最低,最高不要超過三層,更多的使用類來關聯每一個標籤元素。
  5. 考慮繼承。瞭解哪些屬性是可以通過繼承而來的,然後避免對這些屬性重複指定規則