Widely available YES。主要ブラウザで広く対応済み。本番利用を推奨。

対応ブラウザ

機能 デスクトップ モバイル
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+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 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; }
}

ライブデモ

Hover Support

CSS Hover support demo.

プレビュー全画面表示

Pointer: Coarse Support

CSS Pointer: coarse support demo.

プレビュー全画面表示

Pointer: Fine Support

CSS Pointer: fine support demo.

プレビュー全画面表示

実務での使いどころ

  • タッチデバイス向けUIの最適化

    pointer: coarseのデバイスでタップターゲットを拡大し、hover: noneの場合はホバーに依存しないインタラクションに切り替えます。

注意点

  • タッチ対応のラップトップなど、複数の入力手段を持つデバイスではany-pointerやany-hoverの方が適切な場合があります。

アクセシビリティ

  • ホバーが利用できない環境でもすべての機能にアクセスできるよう、hover: noneの場合の代替インタラクションを提供してください。