亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

css的效率和瀏覽器渲染的速度

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

武林網(www.49028c.com)文章簡介:如何寫css的才能提高執行效率.

瀏覽器如何讀取你的CSS選擇器有一個很重要的原則,那就是它們從右到左讀取。這意味這像 ul > li a[title="home"] 這樣的選擇器,a[title="home"] 將是最先被讀取的。

我承認我并不經常想這個問題......我們寫的css的效率是怎么樣的呢,瀏覽器渲染的速度又如何呢?

這是應該是瀏覽器開發者應該關心的(頁面加載更快,用戶就會更愉快)。Mozilla有一篇文章: about best practices . Google 當然也很關心這個問題,他們也有這樣一篇文章:Optimize browser rendering 。

讓我們了解下他們主要倡導的東東,然后討論他們的實用性。

從右到左

瀏覽器如何讀取你的CSS選擇器有一個很重要的原則,那就是它們從右到左讀取。這意味這像 ul > li a[title="home"] 這樣的選擇器,a[title="home"] 將是最先被讀取的。這一部分通常被稱為 “key selector” (可否稱為“目標選擇器” -_-!)選擇器的最后一部分,也是被選擇的標簽。

ID's 是最有效率的,通用符是最慢的

有四種目標選擇器:ID, class, tag和通用符。看下他們各自的效率如何:
#main-navigation { } /* ID (最快) */
body.home #page-wrap { } /* ID */
.main-navigation { } /* Class */
ul li a.current { } /* Class *
ul { } /* Tag */
ul li a { } /* Tag */
* { } /* Universal (最慢) */
#content [title='home'] /* Universal */ 然后我們結合從右到左和目標選擇器的概念,我們可以知道下面這個選擇器并不高效:
#main-nav > li { } /* 看著很快實則很慢 */
盡管這讓人有點費解......因為ID's是最高效的,瀏覽器可以通過ID迅速的找到 li。但事實是,li 標簽是被先讀取的。

不要用標簽修飾

死也不要像下面這樣干:

 

ul#main-navigation { }

 

ID's 是唯一的,所以不需要用標簽修飾,這只會讓它更低效。
如果你可以避免的話,也不要用它修飾 class 。class 不是唯一的,所以理論上你可以把它用在不同的標簽。如果你愿意的話,你可以用標簽控制不同的樣式,這樣你可能需要標簽修飾(比如:li.first),但這樣做的人很少,所以,don't .

絕對沒有比用后代選擇器更糟糕的做法了
David Hyatt:
后代選擇器是CSS里最昂貴的選擇器,昂貴得可怕——特別是當它放在標簽和通用符后面時。
就如下面這個東東一樣,絕對的效率毒瘤:

 

html body ul li a { }

 

一個選擇器渲染失敗比這個選擇器被渲染更高效

我不是很確定是否有更好的證據去證明這一點,因為如果你有大量的選擇器在CSS樣式表里無法找到,這樣的事情貌似很離奇,但一點必需注意的是,從右到左的解釋一個選擇器來說,一旦它找不到,那它就會停止嘗試。然而如果它找到了,那它就需要花更多精力去解釋了。

試想一下為何你這樣寫選擇器

思考下這東東:

 

#main-navigation li a { font-family: Georgia, Serif; }

 

你可能不需要從 a 選擇器開始(如果你只是想換個字體)。下面這個可能更高效些:

 

#main-navigation { font-family: Georgia, Serif; }

 

實用性

還刻前面提到的Mozilla的一篇文章?已經有十年了。事實是:計算機比十年前變慢了(不是我理解錯了,還是作者想說現在的WEB越來越復雜了)。我感覺這東東在當年似乎還更受重視。十年前我還是個21歲的英俊小生,當然我不覺得那里我會認識css這東東。所以我也無法跟你講以前的情況......但我覺得渲染效率的問題之所以沒被重視是因為這從來就不是一個大問題。
這是我的一些看法:不管怎樣上面提到的東東都是有意義的,你可以按照上面的方法去做,因為它并不會限制你的CSS制作。但你也沒必要太教條主義。如果你是個完美主義者,而之前又沒有考慮過那東東,那是時候去重新看一下你之前寫的一些樣式是否有改進的地方了。如果你沒發現你的網站明顯的渲染緩慢,那大可別太在意,在以后的工作中多注意就行了。

超級快速,零實用性

我們知道ID's 是最高效的選擇器。當你想讓渲染速度最高效時,你可能會給每個獨立的標簽配置一個ID,然后用這些ID寫樣式。那會超級快,也超級荒唐。這樣的結果是語義極差,維護難到了極點。即使在核心部分你也不應該見過這樣做的。我認為這個可以提醒我們不要為了高效的CSS放棄語義和可維護性。

Thanks to Jason Beaudoin for emailing me about the idea. If anyone knows more about this stuff, or if you have additional tips that you use in this same vein, let’s hear it!

順便提一下,因為CSS選擇器被很多javascript庫使用,上面提到的東東仍然適用,ID選擇器還是最快的,后代選擇器和類似的東東比較慢。

PS:看誰還敢用N多的后代選擇器。。。還有反對我用ID的。。。哇哈哈。。。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久天天躁夜夜躁狠狠躁2022| 国产99久久精品一区二区 夜夜躁日日躁| 国产日韩欧美一二三区| 亚洲精品一区二三区不卡| 奇米四色中文综合久久| 欧美性生交xxxxx久久久| 国产色婷婷国产综合在线理论片a| 欧美视频裸体精品| 精品中文字幕在线观看| 精品视频—区二区三区免费| yellow中文字幕久久| 97热精品视频官网| 亚洲国产97在线精品一区| 亚洲在线视频观看| 国产一区二区黄| 久久精品国产欧美亚洲人人爽| 欧美日韩国产精品一区二区不卡中文| 久久精品亚洲94久久精品| 亚洲伦理中文字幕| 91精品国产沙发| 国产精品视频永久免费播放| 国产日韩中文字幕在线| 国产精品久久久久久中文字| 中文字幕日韩欧美在线| 国产一区二区在线播放| 成人福利免费观看| 乱亲女秽乱长久久久| 国产精品自拍视频| 亚洲日韩欧美视频一区| 95av在线视频| 欧美日韩成人在线播放| 久久久精品影院| 91夜夜揉人人捏人人添红杏| 久久久久久久激情视频| 九九热精品在线| 欧美成人精品不卡视频在线观看| 亚洲人成电影网站| 亚洲新声在线观看| 欧美日韩免费看| 欧美日韩国内自拍| 欧美国产日本高清在线| 精品久久香蕉国产线看观看亚洲| 日韩av不卡在线| 国产精品美女久久久久av超清| 午夜精品久久久99热福利| 情事1991在线| 亚洲黄色www网站| 欧美最顶级丰满的aⅴ艳星| 欧美精品生活片| 国产精品成人av在线| 久久精品国产一区二区电影| 久久九九精品99国产精品| 欧美日韩成人网| 91久久综合亚洲鲁鲁五月天| 国产精品精品视频一区二区三区| 日韩av网址在线| 日本伊人精品一区二区三区介绍| 国产精品va在线播放| 亚洲视频axxx| 欧美成人精品在线| 俺去了亚洲欧美日韩| 粉嫩av一区二区三区免费野| 国产免费一区二区三区在线能观看| 97精品欧美一区二区三区| 91啪国产在线| 狠狠色狠狠色综合日日五| 亚洲成人激情在线| 日韩精品免费在线视频| 亚洲成人xxx| 粗暴蹂躏中文一区二区三区| 欧美激情精品久久久久久黑人| 欧美精品一区在线播放| 国产精品一区电影| 最近2019中文字幕mv免费看| 日韩电影免费观看中文字幕| 中文国产亚洲喷潮| 久久久久国产精品免费| 精品福利樱桃av导航| 久久精品国产视频| 国产精品久久久久免费a∨大胸| 欧美福利视频在线| 国产免费亚洲高清| 欧美亚洲国产视频小说| 亚洲午夜久久久影院| 最近2019中文字幕大全第二页| 96pao国产成视频永久免费| 久久精品成人动漫| 欧美午夜精品久久久久久浪潮| 国产欧美精品一区二区| 亚洲欧美中文日韩v在线观看| 国产精品成人久久久久| 亚洲欧美日韩综合| 欧美中文字幕在线视频| 国产精品久久久久久中文字| 亚洲精品www| 国产精品一区二区三| 国产精品日韩精品| 亚洲综合国产精品| 亚洲精品天天看| 亚洲精品久久7777777| 性色av一区二区三区免费| 91产国在线观看动作片喷水| 日韩暖暖在线视频| 日韩激情视频在线播放| 日本精品免费一区二区三区| 日韩女优人人人人射在线视频| 亚洲香蕉成视频在线观看| 欧美精品在线看| 日韩最新av在线| 久久视频在线直播| 九九热99久久久国产盗摄| 亚洲欧美国产高清va在线播| 欧美富婆性猛交| 欧美高清性猛交| 久久伊人免费视频| 欧美精品生活片| 亚洲精品免费在线视频| 国产噜噜噜噜久久久久久久久| 亚洲欧美精品中文字幕在线| 日本不卡视频在线播放| 色综合久久久久久中文网| 欧美精品免费看| 国产精品稀缺呦系列在线| 久久91精品国产91久久跳| 亚洲精品视频在线观看视频| 中文字幕国产日韩| 国产91精品最新在线播放| 91精品国产综合久久香蕉的用户体验| 亚洲欧美日韩国产中文专区| 国内精久久久久久久久久人| 亚洲男人7777| 午夜精品久久久久久久男人的天堂| 亚洲第一福利在线观看| 日韩大片免费观看视频播放| 久久精品视频网站| 中文字幕在线精品| 91精品视频一区| 日韩二区三区在线| 欧美人在线视频| 97在线视频免费播放| 亚洲一区av在线播放| 国产精品狼人色视频一区| 精品久久久久久久久久久| 一区二区三区精品99久久| 亚洲第一页自拍| 亚洲综合中文字幕在线| 欧美激情第6页| 国产网站欧美日韩免费精品在线观看| 国产成人精品免费久久久久| 亚洲免费中文字幕| 亚洲r级在线观看| 精品久久久久久久久国产字幕| 中文字幕日韩精品在线观看| 精品偷拍各种wc美女嘘嘘| 日韩小视频在线| 日韩av影片在线观看| 久久久久久午夜| 国产精品爱久久久久久久| 亚洲风情亚aⅴ在线发布| 亚洲欧美三级伦理| 亚洲第一精品自拍| 国产高清在线不卡| 国产精品一区二区三区免费视频| 亚洲成人网在线|