セレクターのいずれかの部分が無効な場合、ブラウザーはルール全体をドロップすることが期待されます。
セレクター(セレクターのセクションも参照)は、最初の左中括弧({)までのすべてで構成されます(ただし、これは含まれません)。セレクターは常に宣言ブロックと一緒に使用されます。ユーザーエージェントがセレクターを解析できない場合(つまり、CSS 2.1が無効な場合)、セレクターとそれに続く宣言ブロック(存在する場合)も無視する必要があります。
CSS 2.1は、セレクターのコンマ(、)に特別な意味を与えます。ただし、CSSの将来の更新でコンマが他の意味を取得する可能性があるかどうかは不明であるため、CSS 2.1ではセレクターの残りの部分が妥当に見える場合でも、セレクターのどこかにエラーがある場合はステートメント全体を無視する必要があります。
(ブラウザーに関する限り、「有効なCSS 2.1」は、実際には「ブラウザーによって理解およびサポートされるセレクター」を意味することに注意してください。)
Mozilla以外のブラウザは理解できないため::-moz-selection
、ルールを削除する必要があります。Mozillaブラウザは理解していないので::selection
、ルールも削除する必要があります。これは負け負けの状況です(特にセレクターでプレフィックスが扱いにくいもう1つの理由)。
ちなみに、これがChromeで機能しなくなったことに驚いています(とにかくテストしたばかりなので、少なくともWindowsのバージョン25では)。以前は、セレクターp::selection, p::-moz-selection
を単純なものとして頑固に解析しp::selection
、仕様に従うのではなくルールを適用していました。開発者には、そうする理由がありました。何が変わったのかしら...