国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

CSS教程:簡化CSS選擇器

2024-07-11 09:03:50
字體:
來源:轉載
供稿:網友

武林網(www.survivalescaperooms.com)文章簡介:對大多數網站而言,優化CSS選擇器活得的性能提升很小,不值得去計較。有些配合Javascript交互的CSS規則會明顯的拖慢頁面。這是應該關注的焦點。所以我開始關注現實中影響頁面性能的CSS樣式相關的小問題。

本文是《Even Faster Web Sites: Performance Best Practices for Web Developers (Paperback)》的最后一章。上篇帖子《Performance Impact of CSS Selectors》(中文版)最后提出了一段假設:

對大多數網站而言,優化CSS選擇器活得的性能提升很小,不值得去計較。有些配合Javascript交互的CSS規則會明顯的拖慢頁面。這是應該關注的焦點。所以我開始關注現實中影響頁面性能的CSS樣式相關的小問題。

我收到了很多反饋。David Hyatt的文章《Writing Efficient CSS for use in the Mozilla UI》披露:

樣式系統渲染一條規則是從最右邊開始之后依次向左移動。在你的小子樹(subtree)持續檢測的時候,樣式系統將繼續向左側移動直到它不匹配CSS規則或匹配錯誤。

由此得出,我們優化工作的重點應該是:匹配大量頁面元素的最右側的CSS選擇器。我上篇博文測試的CSS選擇器看起來很費性能,但是按這條新觀點審視,我們發覺這其實不值得擔心,比如:

DIV DIV DIV P A.class0007 {}

這個選擇器有5層,看起來很復雜,但是我們來看最右側的選擇器 A.class0007 ,我們發現,在整個頁面中需要瀏覽器逆向匹配的只有一個元素。

優化CSS選擇器的關鍵點在于最右側的選擇器,也叫做key selector (巧合?)。有一個更昂貴的選擇器

A.class0007 * {}

盡管這個選擇器看起來更簡單,但對瀏覽器匹配而言更昂貴。因為瀏覽器要從右至左,開始后要檢查匹配 * 的所有元素。這意味著瀏覽器會嘗試匹配頁面中的所有元素。下圖為普通選擇器與先前的后代選擇器加載時間的對比:

CSS教程:簡化CSS選擇器

 

它清晰的反映出一個匹配很多元素的key selector會嚴重的拖慢頁面。其他可能會大量增加瀏覽器工作的key selector包括:

A.class0007 DIV {}#id0007 > A {}.class0007 [href] {}DIV:first-child {}

不是所有的CSS選擇器傷害性能,盡管看起來如此。CSS選擇器的關鍵點在于泛匹配的key selector。這對于含有大量DOM元素、CSS規則,更高 reflow 的Web 2.0應用更加重要。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁岭市| 阿城市| 富川| 乡城县| 灵石县| 汾西县| 安乡县| 石楼县| 遂川县| 隆德县| 浦东新区| 惠东县| 合山市| 昌吉市| 新和县| 邛崃市| 黑山县| 饶河县| 双鸭山市| 慈溪市| 观塘区| 徐闻县| 朝阳区| 竹山县| 景东| 赞皇县| 泌阳县| 兴山县| 通山县| 鹤山市| 尉氏县| 济南市| 商水县| 丹江口市| 大理市| 都江堰市| 昌图县| 嵊州市| 理塘县| 惠来县| 惠来县|