::-moz-selection, ::selection { } と宣言すると Google Chrome, Opera で宣言ブロックごと無視される
検証
CSS3 には ::selection という疑似要素があります。
Firefox v3.6.13 では ::-moz-selection
と書かなければ動作しないので、以下のように書いてみました。(サンプルページは ::selection Sample)
::-moz-selection, ::selection { color: black; background-color: white; }
これは Firefox v3.6.13 では動作しますが、 ::-moz-selection
を解釈できない Google Chrome 8, Opera v11.00 では動作しません。
そこで宣言ブロックを2つに分けてみます。(サンプルページは ::selection Sample)
::-moz-selection { color: black; background-color: white; } ::selection { color: black; background-color: white; }
これで Google Chrome 8, Opera v11.00 でも動作するようになりました。
CSS 仕様
CSS 2.1 gives a special meaning to the comma (,) in selectors. However, since it is not known if the comma may acquire other meanings in future updates of CSS, the whole statement should be ignored if there is an error anywhere in the selector, even though the rest of the selector may look reasonable in CSS 2.1.
CSS2は,選択子のコンマ(,)に特別な意味を与える。しかし,コンマがCSSの将来の版で他の意味をもつかどうかは分からないので,選択子のどこかにエラーがある場合には,選択子の残りがCSS2の規定に合っているように見えても,そのすべての文を無視するほうがよい。
Google Chrome 8, Opera v11.00 はこの原則に従っているのだと思います。
Twitterログ
http://jsbin.com/efagu3/2 #CSS3
http://jsbin.com/efagu3/1
http://www.quirksmode.org/css/selection.html
http://goo.gl/ehE3C (CSS2.1)
http://goo.gl/IqCUG (CSS2.1 原文)
http://goo.gl/oW7FT (CSS2.0 和訳)
::-moz-selection {} と記述されている場合、Fx 以外のブラウザは宣言ブロック全てをパースエラーとして無視する。
http://goo.gl/9ieZm (CSS2.1 原文)
http://goo.gl/xSYIJ (CSS2.0 和訳)