中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)頁制作 > 如何使CSS渲染更高效
全兼容可高亮二級(jí)緩沖折疊菜單 回到列表 Google font api,webfont與中文
 如何使CSS渲染更高效

作者:miniala 時(shí)間: 2010-05-26 文檔類型:翻譯 來自:藍(lán)色理想

原文:Efficiently Rendering CSS

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

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

讓我們了解下他們主要倡導(dǎo)的東東,然后討論他們的實(shí)用性。

從右到左

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

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

有四種目標(biāo)選擇器: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 */ 然后我們結(jié)合從右到左和目標(biāo)選擇器的概念,我們可以知道下面這個(gè)選擇器并不高效:
#main-nav > li { } /* 看著很快實(shí)則很慢 */
盡管這讓人有點(diǎn)費(fèi)解......因?yàn)镮D's是最高效的,瀏覽器可以通過ID迅速的找到 li。但事實(shí)是,li 標(biāo)簽是被先讀取的。

不要用標(biāo)簽修飾

死也不要像下面這樣干:

ul#main-navigation { }

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

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

html body ul li a { }

一個(gè)選擇器渲染失敗比這個(gè)選擇器被渲染更高效

我不是很確定是否有更好的證據(jù)去證明這一點(diǎn),因?yàn)槿绻阌写罅康倪x擇器在CSS樣式表里無法找到,這樣的事情貌似很離奇,但一點(diǎn)必需注意的是,從右到左的解釋一個(gè)選擇器來說,一旦它找不到,那它就會(huì)停止嘗試。然而如果它找到了,那它就需要花更多精力去解釋了。

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

思考下這東東:

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

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

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

實(shí)用性

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

超級(jí)快速,零實(shí)用性

我們知道ID's 是最高效的選擇器。當(dāng)你想讓渲染速度最高效時(shí),你可能會(huì)給每個(gè)獨(dú)立的標(biāo)簽配置一個(gè)ID,然后用這些ID寫樣式。那會(huì)超級(jí)快,也超級(jí)荒唐。這樣的結(jié)果是語義極差,維護(hù)難到了極點(diǎn)。即使在核心部分你也不應(yīng)該見過這樣做的。我認(rèn)為這個(gè)可以提醒我們不要為了高效的CSS放棄語義和可維護(hù)性。

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!

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

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

經(jīng)典論壇交流:
http://bbs.blueidea.com/thread-2985630-1-1.html

本文鏈接:http://www.95time.cn/tech/web/2010/7631.asp 

出處:藍(lán)色理想
責(zé)任編輯:bluehearts

◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。

相關(guān)文章 更多相關(guān)鏈接
css reset中的list-style:none
說說CSS Hack 和向后兼容
重構(gòu)中的模塊化設(shè)計(jì):樣式的作用域
CSS Sprites:有用技術(shù)or潛在麻煩
在 Mozilla UI 中書寫高效率 CSS
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2