武林網(wǎng)(www.companysz.com)文章簡(jiǎn)介:渲染CSS選擇器.
最近在High Performance Web Sites blog看到一篇關(guān)于css選擇器的文章《Simplifying CSS Selectors》,我英文太差,在翻譯軟件和朋友的幫助下稍微的看懂了一些,看本文需要謹(jǐn)慎,謹(jǐn)防被我誤導(dǎo),如果你英文強(qiáng),能翻譯作者原文那就更好了,大家都會(huì)感謝你的;
看懂的整理了如下幾點(diǎn):
1.作者先前的文章里說:不用去優(yōu)化CSS選擇器,因?yàn)閮?yōu)化CSS選擇器對(duì)網(wǎng)友的性能提升很小,不值得去計(jì)較;這個(gè)觀點(diǎn)似乎有點(diǎn)不對(duì),作者收到了很多批評(píng)的反饋;(轉(zhuǎn)載請(qǐng)注明出處:WEB前端開發(fā) )
2.David Hyatt的文章《Writing Efficient CSS for use in the Mozilla UI》中提到的一條CSS渲染規(guī)則是:在一條css中,css選擇器是從最右邊開始之后依次向左移動(dòng)的,直到它不匹配CSS規(guī)則或匹配錯(cuò)誤;所以我們的工作重點(diǎn)應(yīng)該放在最右側(cè)的CSS選擇器來匹配大量的頁面的元素。
比如這樣一個(gè)css選擇器:
div div div p a.class0007 {}
這個(gè)選擇器有5層,貌似很負(fù)責(zé)的,但是最右邊的選擇器是A.class0007,在頁面中只有一個(gè)匹配的元素逆向匹配(.class0007);
所以這樣的選擇器不用擔(dān)心他的性能;
3.當(dāng)然還有一些性能不好的css選擇器:
A.class0007 * {}
A.class0007 DIV {}
#id0007 > A {}
.class0007 [href] {}
DIV:first-child {}
這些性能不好的css選擇器主要是因?yàn)樵谧钣疫叺倪x擇器可以匹配的元素很多,從而降低了頁面的性能。
新聞熱點(diǎn)
疑難解答
圖片精選