2014-10-10 34 views
2

CSS從右到左讀取,但是是在它們所連接的選擇器之前或之後讀取的僞類?CSS僞類在其他選擇器之前讀取嗎?

例如,在:

p:first-child {} 

待辦事項瀏覽器每對元素匹配,然後確定它是否是第一胎,還是它的每一個元素的每個第一個孩子匹配,並且確定它是否是一個對元素?

我想象的瀏覽器匹配元素,然後確定它是否是:第一胎,:第n個孩子等等,但我想,以確保..

+0

谷歌沒有答案嗎? – 2014-10-10 22:39:04

+1

我想你在問實施細節。實現是非常模糊的,即使在不同版本之間也可能會發生變化,如果出於某種原因可以提高性能或者通過相互選擇代碼來獲得更清晰的代碼。 – Zenorbi 2014-10-10 22:44:41

+1

我問谷歌;找不到它。有沒有發現幾個地方說假選擇器是最慢的。 http://www.vanseodesign.com/css/css-selector-performance/但是最慢的並不意味着太多,除非你將10MB數據表注入視圖中。 – Will 2014-10-10 22:44:52

回答

1

「你的瀏覽器每P匹配然後確定它是否是第一個孩子的 ,還是它匹配每個元素的每個第一個子元素,然後確定它是否是p元素?

都沒有。瀏覽器不會查找應用規則的元素,它會查找應用於元素的規則。

當檢查一個規則是否適用於一個元素時,如果它首先檢查它是否是p元素或者它是否是第一個孩子,那麼它沒有多大區別。兩者都很容易確定。

+0

感謝您的評論,Guffa,但我沒有看如何確定哪些規則適用於哪些元素。我在尋找是否將樣式規則匹配到元素時,如果匹配是首先發生在僞類,然後是僞類的限定符,或者首先查找限定符,然後是僞類。 雖然我可以看到我最初的問題可能會被誤解。我對沒有更清楚的道歉表示歉意。 – user3633776 2014-10-13 15:46:04

+0

@ user3633776:對於剛好在瀏覽器中實現的每個複合選擇器中的選擇器,右對齊處理僅適用於組合器。這取決於瀏覽器確定哪些選擇器檢查速度更快的優化,但它對性能影響很小。首先檢查'this.tagName =='P''或'this.parent.childNodes [0] == this'等價物的效果幾乎不可能測量。 – Guffa 2014-10-13 18:18:54

+0

啊,我明白你的意思了。非常感謝您澄清。 – user3633776 2014-10-13 19:05:04

相關問題