我讀到,在CSS中使用子選擇器(>
)比後代選擇器()更快。例如:
p > em
而不是p em
。CSS的孩子vs後代選擇器
在我看來,我在野外看到的大多數代碼並沒有利用這一點。
我知道某些情況下可能會使用其中一種,但總的來說,我是否應儘可能地利用子選擇器?或者我應該遵循似乎是約定,並主要依賴於後代選擇器?
我讀到,在CSS中使用子選擇器(>
)比後代選擇器()更快。例如:
p > em
而不是p em
。CSS的孩子vs後代選擇器
在我看來,我在野外看到的大多數代碼並沒有利用這一點。
我知道某些情況下可能會使用其中一種,但總的來說,我是否應儘可能地利用子選擇器?或者我應該遵循似乎是約定,並主要依賴於後代選擇器?
從理論上講,子選擇器會比後代選擇器快,因爲瀏覽器可以在第一級之後停止檢查子節點。不過,由於瀏覽器在第一時間快速解析CSS,我懷疑從中看到的任何性能增強都可以忽略不計。
由於NullUserException指出,選擇器不能在IE6中工作,所以如果你關心IE6我不會加載你的CSS。但要記住的一件好事是,你應該清楚在哪種情況下使用哪一種。問自己,「我是否希望這個聲明覆蓋所有匹配兒童,還是我希望它只覆蓋直接匹配兒童?」問自己這樣一個問題似乎很明顯,但它確實是您在兩者之間進行選擇的唯一方法。除非你的意思是不要使用>
。
也看到我的問題Is there an advantage to using very specific selectors in CSS?
我真正刪除我的回答乾脆,因爲你已經佔地約IE6的部分。 – NullUserException 2010-08-27 03:15:35
謝謝你們!有趣的是,我甚至沒有意識到IE6的東西。不能說我很驚訝。這完全解釋了爲什麼我在野外看不到很多東西。 – 2010-08-27 18:11:09
根據https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS,css選擇器自下而上匹配 – Juan 2014-08-21 15:27:09