1

テストの準備を進めていると、これで最初の文字の色が正しく設定されるかどうか尋ねられました。

td.one::first-letter {
    color:blue;
}

さて、コロンが二重になっている場所を見たことは知っていますが、jsFiddle のテストでは、それとコロンの動作に違いは見られませんでした。

td.two:first-letter {
    color:green;
}

では、何が違うのか、疑似クラスの前に : の代わりに :: を使用するのはなぜですか?

http://jsfiddle.net/mori57/bqE7Q/

4

2 に答える 2

4

スペック確認?

この :: 表記は、疑似クラスと疑似要素を区別するために現在のドキュメントで導入されています。既存のスタイル シートとの互換性のために、ユーザー エージェントは、CSS レベル 1 および 2 で導入された疑似要素 (つまり、:first-line、:first-letter、:before、:after) の以前の 1 つのコロン表記も受け入れる必要があります。この互換性は、この仕様で導入された新しい疑似要素では許可されていません。

http://www.w3.org/TR/selectors/#pseudo-elements

于 2013-04-29T17:04:57.093 に答える
3

この場合、それらは同等ですが、それは疑似クラスではなく疑似要素であるためです。二重コロンの構文は、単一コロンの疑似要素を「疑似クラス」と呼ぶことから生じる混乱を防ぐために作成されました(奇妙なことに、質問が示しています)。仕様から:

この::表記法は、疑似クラスと疑似要素を区別するために現在のドキュメントで導入されています。既存のスタイル シートとの互換性のために、ユーザー エージェントは、CSS レベル 1 および 2 で導入された疑似要素 (つまり、、、および ) の以前の 1 つのコロン表記も受け入れる必要:first-lineがあり:first-letterます。この互換性は、この仕様で導入された新しい疑似要素では許可されていません。:before:after

9 未満の IE をサポートする予定がない場合は、すべての疑似要素を二重のコロンで示すことをお勧めします。古いバージョンの IE のサポートが必要な場合は、引き続き単一のコロンを使用できますが、前述のセレクターに対してのみです。

于 2013-04-29T17:04:38.767 に答える