4

CSSで名前空間を使用する場合、たとえば、div名前空間付きタイプセレクターを使用して、「任意または名前空間なし」の任意の要素を選択できます。

*|div

疑似クラスに名前空間を付けることは有効なCSSですか?例えば:

*|:first-child

WebKitベースのブラウザでは機能するようですが、IE9(IE9より下では名前空間をまったくサポートしていません)とFirefoxでは機能しないようです。どのブラウザで動作するか、動作しないかは関係ありません。有効な構成であるかどうかを知る必要があります。

これがフィドルです。

CSS文法で理解できることから、それは有効ではありません。しかし、私は文法を読み間違えているかもしれません。

4

1 に答える 1

6

ドキュメント言語の一部としての名前空間は、ドキュメント言語 (XML など) ではなく CSS で定義されるため、疑似クラスまたは疑似要素に直接適用されません。ただし、要素の型と属性は、CSS ではなくドキュメント言語で定義されるため、名前空間を付けることができます。したがって、単純なセレクターのシーケンスでは、ユニバーサル セレクターは具体的には「任意の型」を意味します。

ユニバーサル セレクターは、名前空間なしで使用される場合、他の単純なセレクターおよび疑似要素に対してのみ暗示されます (これが、 、 、 、および のようなセレクター.foo#target有効[type="text"]:first-childあり::before、一般に CSS がスタイリングに最も一般的に使用される HTML のような言語で使用される理由です)。仕様から:

で表されるユニバーサル セレクター*(つまり、名前空間プレフィックスなし) が単純なセレクター セレクターのシーケンスの唯一のコンポーネントではない場合、または直後に疑似要素が続く場合、*を省略してユニバーサル セレクターの存在を暗示することができます。

|したがって、あなたの例では、と の間にユニバーサルセレクターもタイプセレクターもないため、セレクターは無効です:

/* These are all invalid */
*|:first-child
ns|::first-letter
|::before

名前空間を指定する場合、代わりに特定のタイプを選択しない場合は、ユニバーサル セレクターを指定する必要があります。

*|*:first-child
*|*::before

ns名前空間で要素を選択する場合も同様です。

ns|*:first-child
ns|*::before

または、名前空間にない要素を選択する場合:

|*:first-child
|*::before
于 2012-06-21T19:20:03.437 に答える