2010-08-27 97 views
14

我讀到,在CSS中使用子選擇器(>)比後代選擇器()更快。例如:p > em而不是p emCSS的孩子vs後代選擇器

在我看來,我在野外看到的大多數代碼並沒有利用這一點。

我知道某些情況下可能會使用其中一種,但總的來說,我是否應儘可能地利用子選擇器?或者我應該遵循似乎是約定,並主要依賴於後代選擇器?

回答

11

從理論上講,子選擇器會比後代選擇器快,因爲瀏覽器可以在第一級之後停止檢查子節點。不過,由於瀏覽器在第一時間快速解析CSS,我懷疑從中看到的任何性能增強都可以忽略不計。

由於NullUserException指出,選擇器不能在IE6中工作,所以如果你關心IE6我不會加載你的CSS。但要記住的一件好事是,你應該清楚在哪種情況下使用哪一種。問自己,「我是否希望這個聲明覆蓋所有匹配兒童,還是我希望它只覆蓋直接匹配兒童?」問自己這樣一個問題似乎很明顯,但它確實是您在兩者之間進行選擇的唯一方法。除非你的意思是不要使用>

也看到我的問題Is there an advantage to using very specific selectors in CSS?

參見:CSS selector support per browser

+1

我真正刪除我的回答乾脆,因爲你已經佔地約IE6的部分。 – NullUserException 2010-08-27 03:15:35

+0

謝謝你們!有趣的是,我甚至沒有意識到IE6的東西。不能說我很驚訝。這完全解釋了爲什麼我在野外看不到很多東西。 – 2010-08-27 18:11:09

+0

根據https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS,css選擇器自下而上匹配 – Juan 2014-08-21 15:27:09