前文:これはやや「学術的な」質問です。私は、実用的な解決策ではなく、説明とインテリジェントな推測を探しています(「解決」するための実際の問題はありません)。
そのため、:hover
セレクターにそのdisplay
プロパティをnone
に設定させた場合、Chrome(v23)では認識できる効果がないことに気付きました。実際、セレクターの他のプロパティは適用されません。セレクター全体が無視されているようです。
例えば
<div class="myElement">Hover over this. Nothing happens!</div>
..。
.myElement:hover {
display:none;
color:red;
}
(これのjsFiddleをチェックしてください)
明らかに、display:none
の要素はホバーできないため、要素はセレクターによって即座に選択されなくなり、プロパティ:hover
が失われdisplay:none
ます(そして再び選択できるようになります)。
このルールの逆説的な性質からdisplay
、他のブラウザ(つまり、Firefox)のように、プロパティが(たとえば、フレームごと、またはマウスの移動ごとに)急速に切り替わらないのはなぜか疑問に思います。Chromeの実装が好きだと思いますが、なぜ他のプロパティ(例color:red
)が適用されないのでしょうか。
質問:Chromeがこのばかげたセレクターを救済することを選択する公式の文書化された理由はありますか、それともこれはある種のバグですか?