ちょっとややこしい。
基本形
button{ color: blue;}
button:hover{ color: red;}
button:disabled{ color: green;}
この並びなら:disabledで指定した内容は:hoverに勝つ。:hoverを後に書くとdisabledでも:hoverが効いてしまう。それはどうなのよってことになる。
この順番で書けない場合はdisabledの:hoverも指定する必要がある。
本題
button{ color: blue;}
button:disabled{ color: green;}
button:hover{ color: red;}
button:disabled:hover{ color: green;}
並びを変えられない場合というのは、例えばこういう場合。
button{ color: blue;}
button:disabled{ color: green;}
@media (pointer: fine) {
button:hover{ color: red;}
button:disabled:hover{ color: green;}
}
スマホとかタブレット対策で、カーソルが無いデバイスではカーソルを乗せる概念はない。あるけど。普通に組むとスワイプ時に指を乗せた状態で:hoverが反応して、そのまま解除されなくて気持ち悪かったりする。だから、カーソルがある環境だけ:hoverを付けたいってなるとこういう記述になる。
コメント