Interaction media queries
any-hover は CSS のメディア特性で、要素の上で停止することができる入力メカニズムが何らか利用できるかどうかを検査するために使用することができます。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 41 | 16 | 64 | 9 | 41 | 9 | |
| CSS @ ルール | ||||||
| any-pointer は CSS のメディア特性で、ユーザーが (マウスなどの) 何らかのポインティングデバイスを持っているか、もしそうならば、どれだけの正確性を持っているかを調べます。 | 41 | 12 | 64 | 9 | 41 | 9 |
| hover は CSS のメディア特性で、第一の入力機構で要素の上でホバーする(かざす)ことができるかどうかを検査するために使用することができます。 | 38 | 12 | 64 | 9 | 50 | 9 |
| pointer は CSS のメディア特性で、ユーザーが(マウスなどの)ポインティングデバイスを持っているか、もしそうならば、第一のポインティングデバイスにどれだけの正確性があるかを調べます。 | 41 | 12 | 64 | 9 | 50 | 9 |
注釈 1件
実装メモ
- Chrome 41 より前では、実装にはバグがあり、マウス/トラックパッドを使用する非タッチベースのコンピューターでは「(hover: none)」と報告されました。 バグ 40397980 を参照してください。
注釈 1件
実装メモ
- 特定の Samsung モデルなどの一部の Android デバイスでは、「(hover: hover)」メディア クエリが誤って一致する可能性があります。 バグ 41445959 を参照してください。
基本構文
CSS
@media (hover: none) {
.tooltip { display: none; }
}
@media (pointer: coarse) {
button { min-height: 44px; }
} ライブデモ
実務での使いどころ
-
タッチデバイス向けUIの最適化
pointer: coarseのデバイスでタップターゲットを拡大し、hover: noneの場合はホバーに依存しないインタラクションに切り替えます。
注意点
- タッチ対応のラップトップなど、複数の入力手段を持つデバイスではany-pointerやany-hoverの方が適切な場合があります。
アクセシビリティ
- ホバーが利用できない環境でもすべての機能にアクセスできるよう、hover: noneの場合の代替インタラクションを提供してください。