亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊(cè)會(huì)員 設(shè)為首頁 | 收藏本站
當(dāng)前位置 : 首頁>軟件學(xué)院>程序開發(fā)>CSS>正文
 
css的效率和瀏覽器渲染的速度

http://m.yibo1263.com 2010-5-31 7:46:17  來源:東北IT網(wǎng)  編輯:葉子
 
瀏覽器如何讀取你的CSS選擇器有一個(gè)很重要的原則,那就是它們從右到左讀取。這意味這像 ul > li a[title="home"] 這樣的選擇器,a[title="home"] 將是最先被讀取的。

我承認(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)該見過這樣做的。

本新聞共2頁,當(dāng)前在第1頁  1  2  

 
收藏】【打印】【進(jìn)入論壇
  相關(guān)文章:

·CSS3 Media Queries 詳解
·CSS實(shí)例教程:非浮動(dòng)區(qū)域設(shè)置寬度
·關(guān)于CSS HACK 解決兼容的寫法 
·小議使用“完整”的CSS的缺點(diǎn)
·關(guān)于CSS不透明的詳細(xì)介紹 
·CSS中設(shè)置段落間距的方法
·用css網(wǎng)站布局之十步實(shí)錄
·DIV+CSS布局代碼精簡(jiǎn)對(duì)SEO的影響 
·CSS教程:網(wǎng)頁中英文字體的設(shè)置 
·css3文本陰影屬性text-shadow說明 
·css3陰影屬性box-shadow注意事項(xiàng) 

 
 
 
 
最新文章

中關(guān)村艷照門女主角詳記錄高清組圖 
大連護(hù)士門大尺度艷照高清組圖
iPhone女孩微博爆紅 最寶貴東西換iPhon
反恐精英之父內(nèi)維爾:改變電腦游戲銷售
團(tuán)購網(wǎng)站黎明之前:中國市場(chǎng)慘烈廝殺不
團(tuán)購鼻祖Groupon中國揭秘:快與慢的商業(yè)
Spil Games發(fā)布新的品牌形象
1800配置一臺(tái)主機(jī) 不要顯示器
聯(lián)想V360筆記本模特寫真
愛國者第四代移動(dòng)硬盤將面市、低電壓保

 
推薦文章
1
2
3
4
5
6
7
8
9
10
iPhone女孩微博爆紅 最寶貴東西換
大連護(hù)士門大尺度艷照高清組圖
中關(guān)村艷照門女主角詳記錄高清組
蘋果員工中毒門
宮如敏不雅照瘋傳 看張馨予韓一菲
深耕市場(chǎng) 永續(xù)經(jīng)營——專訪百腦匯
優(yōu)派專業(yè)電子書 讓您回家旅途多姿
揭曉百萬大獎(jiǎng)三星bada魅力綻放中
大明龍權(quán)“江湖英雄會(huì)”全國PK大
永恒之塔校園達(dá)人挑戰(zhàn)賽完美落幕
八卦圖解 More>>
iPhone女孩微博爆紅 最寶貴東西換 大連護(hù)士門大尺度艷照高清組圖
中關(guān)村艷照門女主角詳記錄高清組 宮如敏不雅照瘋傳 看張馨予韓一菲
方正县| 太原市| 富阳市| 巩义市| 日照市| 小金县| 舒兰市| 丹棱县| 镇雄县| 紫金县| 海门市| 崇文区| 建水县| 高阳县| 岗巴县| 钟祥市| 澄江县| 禹州市| 平邑县| 蕲春县| 靖江市| 巴彦县| 化德县| 云林县| 惠州市| 青浦区| 边坝县| 济源市| 本溪| 望奎县| 正阳县| 即墨市| 天门市| 梓潼县| 石泉县| 红原县| 拜城县| 淮北市| 青川县| 靖西县| 万州区|