1

2つの疑似クラスを組み合わせようとする奇妙なケースがあります::notそして:nth-of-type()非表示のアイテムにレインボーストライピングを取得する

を持っているので、ルールを適用する前:not([selector]):nth-of-type([rule])にcssが:not最初にアイテムをフィルタリングすると仮定しましたが、それらを任意の順序で持っていると同じ結果が得られます。:nth-of-type

これを示すjsfiddleは次のとおりです。http://jsfiddle.net/j7hjU/

これらを行うとき、私はおそらく何かを見落としていますか?

4

3 に答える 3

6

:nth-​​of-typeを適用する前に、css wouuldが最初に:notアイテムをフィルタリングすると仮定しました

いいえ。CSSは完全に宣言型です。すべてのセレクターは、セレクター部分に関係なくtrueまたはfalseの単純な条件です。これは、セットを取得して処理し、各ステップで絞り込む手続き型言語ではありません。手続き型ルールを使用するセレクター言語は、多くの種類の最適化の影響を受けず、速度が低下します。

つまりnth-of-type、CSSセレクターにはそのような概念がないため、要素の親内の位置についてのみであり、「これまでの結果リスト」内の位置についてではありません。ルールが相互に干渉しないため、セレクターエンジンは、でテストをnth-of-type絞り込む前にテストを検索できます。not

于 2012-08-30T21:31:53.840 に答える
0

これはこの質問の複製のようです:Cssカラーリングテーブルの問題

その答えは本質的にはありませんでしたが、表示されている行にクラスを適用して機能させることができます。

于 2012-08-30T21:39:49.747 に答える
-2

CSSは右から左に解析します。とをフリップフロップしてみました:not:nth-of-type

ブラウザーがCSSセレクターを右から左に一致させるのはなぜですか?

于 2012-08-30T21:30:35.770 に答える