22

CSS ドキュメントによると: http://www.w3.org/TR/CSS21/cascade.html#specificity

特異性は、(とりわけ) セレクター内の属性と疑似クラスの数によって定義されます。

それで、私の質問は、同じクラス名を何度も繰り返すことで特異性を高めることは可能ですか?

例えば:

だろう

.qtxt.qtxt.qtxt.qtxt.qtxt
{
}

~よりも特異性が高い

.qtxt.lalgn
{
}

また

.lalgn .qtxt//(space added to create child selector)
{
}

?

4

3 に答える 3

31

はい、それは可能であり、意図的にそうです。これはCSS2仕様では言及されていませんが、Selectors3仕様では明示的に言及されています。

注:同じ単純なセレクターの繰り返しの発生[原文のまま]は許可されており、特異性を高めます。

したがって、ブラウザーは、セレクターが有効で適用可能である限り、単純なセレクターが繰り返される場合に特異性を高める必要があります。これは、繰り返されるクラスだけでなく、繰り返されるID、属性、および疑似クラスにも適用されます。

あなたのコードを考えると.qtxt.qtxt.qtxt.qtxt.qtxt、最高の特異性があります。他の2つのセレクターも同様に固有です。コンビネータは、特異性の計算にはまったく関係ありません。

/* 5 classes -> specificity = 0-5-0 */
.qtxt.qtxt.qtxt.qtxt.qtxt

/* 2 classes -> specificity = 0-2-0 */
.qtxt.lalgn

/* 2 classes -> specificity = 0-2-0 */
.lalgn .qtxt

また、最後のセレクターのスペースは子孫コンビネーターです。コンビネータはです>

于 2012-07-20T14:11:25.433 に答える
1

.qtxt.qtxt.qtxt特異性が最も高いだろう...

http://jsfiddle.net/nXBTp/1/

ただし、これはクラス名を他のセレクターよりも多く繰り返す場合にのみ当てはまります。次に例を示します。

http://jsfiddle.net/nXBTp/2/

于 2012-07-20T04:26:00.120 に答える
-6

このような特異性をハックする必要はありません...値を強制する必要がある場合は、を使用して!importantください。

于 2012-07-20T02:38:23.473 に答える