価値のあることとして、セレクター 4 は、今後、 CSS1 および CSS2 疑似要素を含むすべての疑似要素に二重コロンを使用するように明示的に1人の作成者に指示します(私の強調):
CSS レベル 1 と CSS レベル 2 は、疑似要素と疑似クラスを混同し、単一コロンの構文を共有しているため、ユーザー エージェントは、レベル 1 と 2 の疑似要素 ( ::before
、::after
、::first-line
、と::first-letter
)。この互換表記は、他の疑似要素では使用できません。ただし、この構文は非推奨であるため、作成者はこれらの疑似要素にレベル 3+ のダブルコロン構文を使用する必要があります。
これは、単一コロン構文の現在の適切な使用法は、レガシー ブラウザーのサポートが絶対に必要な場合のみであることを意味します。ここで問題となるのは IE8 以前のブラウザーのみです。そうでない場合は、二重コロンのみを受け入れる新しい疑似要素との一貫性を保つために、二重コロン構文を使用する必要があります。さらに、たとえば、 orなど、とにかくIE8でサポートされていないプロパティをおよび疑似要素に適用する場合、単一コロン構文を使用するのはまったく無意味です。border-radius
box-shadow
::before
::after
Selectors 3 は、シングルコロンの構文は新しい疑似要素には適用されないという声明で、少なくともこれを暗示していると信じたいと思いますが、この種のことを白黒で述べても、誰も傷つけることはありません。今後の標準がまさにそれを行うことを知っておくとよいでしょう。
:before, :after { ... } ::before, ::after { ... }
また、古い構文をサポートせずに新しい構文をサポートするブラウザは存在しないため、同じスタイルシートに両方の表記法で重複するルールを記述する理由はまったくありません (例: )。
1 私は、この質問がされた時点ではおそらくまだこれを述べていないことを十分承知しており、2013 年 5 月の WDは確かに述べていませんでした。