Google Chrome 8 では :selection { opacity: 1; } が無効となる

(本文 推敲中)

検証

Google Chrome 8 ではデフォルトで選択範囲が透過されるデザインになっています。そこで opacity: 1; を指定して完全不透過の状態にしようとしました。

::selection { color: black; background-color: white; opacity: 1; }

このスタイルはなぜか無効となります。開発者ツールの [Styles] タブで opacity: 1; に取消線が表示されることを確認できます。
次にユーザスタイルシートを設定してみます。

::selection { -webkit-opacity: 1 !important; opacity: 1 !important; }

ユーザスタイルシートでも、開発者ツールの [Styles] タブで opacity: 1; に取消線が表示されてしまいました。

CSS 仕様

Twitterログ


think49
の不具合は Google Chrome 8 で再現できた。制作者スタイルシートで ::selection { opacity: 1; } を指定するが、なぜか効かない。
think49
@ Google Chrome 8 の開発者ツールで "opacity: 1" が取り消されていることが確認できた。
think49
@ ユーザスタイルシートで ::selection { -webkit-opacity: 1 !important; opacity: 1 !important; } を指定しても、開発者ツールの [Styles] タブで "opacity: 1" に取消線が!
think49
@ おそらく、この現象はデフォルトスタイルシートによるものではない。
デフォルトスタイルシートなら "user agent stylesheet" という記述と共に表示されるはずだし、この動作はカスケード処理の原則にそぐわない。
think49
@ rgba(255,255,255,1) や -webkit-opacity と書いても Google Chrome 8 では透過してしまった。記述の問題ではないらしい。
think49
@ background-color: rgba(255,255,255,0.45); を指定してやると、Opera v11.00 でも Google Chrome 8 と近い表示になった。
think49
@ Google Chrome 8 は ::selection { opacity: 0.45 !important; } に近い動作をしているらしい。
(ユーザスタイルシートよりも優先され、開発者ツールにも表示されない根っこの部分で。)