2017-05-27 12 views
0

CSSセレクタの特異性を設定することはできますが、それを構成するセレクタのカウントだけで判断できますか?私はそうのような2つのセレクタ(計算特異性を示す)がある場合、すなわち:プログラムでCSSセレクタの特異性を設定する

UL OL LI  /* a=0 b=0 c=3 -> specificity = 3 */ 
UL OL LI.red /* a=0 b=1 c=3 -> specificity = 13 */ 

https://www.w3.org/TR/selectors/#specificityから例を)

は、特異性を均等にするために、本の最初の例を変更する方法はあります2つのセレクタのとそうするために、任意のクラスセレクタを追加することなく:

UL OL LI  /* a=0 b=1 c=3 -> specificity = 13 */ 

- または -

UL OL LI.red /* a=0 b=0 c=3 -> specificity = 3 */ 

答えて

2

セレクタの特異性は、コンポーネントの単純セレクタ(および存在する場合は疑似要素)によってのみ決定されます。セレクター自体を変更することなく、セレクターの特異性を変更することはできません。

あなたはセレクタ(または潜在的なマッチのセット)の意味の変更について心配している場合は、そのままの意味を維持しながら、あなたが追加することができ、特定のダミー単純なセレクタがあります。あなたの例では、の特異性を、実際に任意のクラス名に従属させることなく、:rootをセレクタの先頭(子孫のコンビネータを含む)に追加するか、のいずれかに 3つのタイプセレクタのうち、どちらも保証された一致であり、疑似クラスはクラスセレクタに等しく固有です。

また、より多くのオプションについては、次の質問に私の答えを参照してください。

は、減少セレクタ特異への同様の方法はありませんが、どちらもプログラム的にもセレクタを変更することによって(当然のことながら、上述したような冗長セレクタを削除することを除いて:root:nth-child(n)、または繰り返しタイプ/クラスセレクタ)。

関連する問題