2012-08-30 74 views
1

我已經嘗試一個奇怪的情況下,兩個僞類結合起來::not:nth-of-type()獲得非隱藏物品組合:第n-的類型()和:不是

有一個:not([selector]):nth-of-type([rule])彩虹條紋,我認爲CSS會在應用:nth-of-type規則之前先過濾:not項目,但以任何順序讓它們給出相同的結果。

以下是一個演示這一個的jsfiddle:http://jsfiddle.net/j7hjU/

我做這些的時候我也許忽視的東西?

回答

4

我假定的CSS還是執意過濾:第n-的型

都能跟得上:首先應用之前不物品。 CSS是完全陳述式的;每個選擇器都是一個獨立於任何選擇器部件的簡單條件,它是真或假。這不是一種程序性語言,你可以對其進行處理,並逐步縮小範圍。具有程序規則的選擇器語言將不受多種優化的影響,速度會更慢。

所以nth-of-type只是關於元素的父元素中的位置,而不是在'到目前爲止的結果列表'中的位置,因爲CSS選擇器沒有這樣的概念。由於規則不會互相干擾,因此選擇器引擎可在查找nth-of-type的測試之前將其縮小爲not