

中嶋悟
名前:中嶋 悟(なかじま さとる) ニックネーム:サトルン 年齢:28歳 性別:男性 職業:会社員(IT系メーカー・マーケティング部門) 通勤場所:東京都千代田区・本社オフィス 通勤時間:片道約45分(電車+徒歩) 居住地:東京都杉並区・阿佐ヶ谷の1LDKマンション 出身地:神奈川県横浜市 身長:175cm 血液型:A型 誕生日:1997年5月12日 趣味:比較記事を書くこと、カメラ散歩、ガジェット収集、カフェ巡り、映画鑑賞(特に洋画)、料理(最近はスパイスカレー作りにハマり中) 性格:分析好き・好奇心旺盛・マイペース・几帳面だけど時々おおざっぱ・物事をとことん調べたくなるタイプ 1日(平日)のタイムスケジュール 6:30 起床。まずはコーヒーを淹れながらニュースとSNSチェック 7:00 朝食(自作のオートミールorトースト)、ブログの下書きや記事ネタ整理 8:00 出勤準備 8:30 電車で通勤(この間にポッドキャストやオーディオブックでインプット) 9:15 出社。午前は資料作成やメール返信 12:00 ランチはオフィス近くの定食屋かカフェ 13:00 午後は会議やマーケティング企画立案、データ分析 18:00 退社 19:00 帰宅途中にスーパー寄って買い物 19:30 夕食&YouTubeやNetflixでリラックスタイム 21:00 ブログ執筆や写真編集、次の記事の構成作成 23:00 読書(比較記事のネタ探しも兼ねる) 23:45 就寝準備 24:00 就寝
any-hoverとhoverの違いを理解する基礎知識
ウェブデザインでよく使われる CSS のメディアクエリには、入力デバイスの「ホバー」が関係する特徴がいくつかあります。その中でも特に重要なのが any-hover と hover の2つです。
まず前提として、hover は『主入力デバイスがホバー動作をサポートしているかどうか』を判定します。
たとえばデスクトップのマウスやトラックパッドのような「カーソルを動かして要素の上に置くとスタイルが変わる」ケースで有効になります。
一方、any-hover は「システムに存在するいずれかの入力方法がホバー可能かどうか」を判定するものです。
つまりスマホのようなタッチ入力が主入力の場合でも、同じ端末に他の入力機器(外部のマウスやスタイラス)が接続されていれば any-hover が true になることがあります。
この違いを正しく理解することは、デザインを壊さずに機能性を保つうえでとても大切です。
以下では、実務での使い分け方と具体的なコード例を詳しく説明します。
この違いがデザインに与える影響と使い分けのコツ
実務での大きな課題は、モバイル端末とデスクトップ端末で同じページを表示したとき、過剰なホバ―効果によって混乱を招かないようにすることです。
例えば、スマホでボタンにホバー用の矢印装飾が勝手につくと、指で押したときに動作と見た目が一致せず、ユーザー体験が悪化します。
そこで any-hover と hover の特性を組み合わせて使い分けると、適切に挙動を分岐させることができます。
具体的には、次のような実装が有効です。
- デスクトップ(マウス・トラックパッドが主入力)では :hover によるスタイルを有効にする
- モバイル(タッチが主入力)では :hover のスタイルを抑制するか別の UI に置換する
- 外部入力機器が接続されている場合だけホバ―効果を許容する柔軟性を作る
この方針を実現するには、以下のような CSS の書き方が役立ちます。
まずは、hover/any-hover の組み合わせを理解しておくと、閲覧環境によらず一貫した UI を提供できます。
なお、実務では以下のように複数の条件を組み合わせて記述することが多いです。
@media (hover: hover) { /* 主入力が hover 可能な場合のスタイル */ }@media (any-hover: hover) { /* システムに hover 能力がある場合のスタイル */ }
このような条件を組み合わせると、デスクトップでもスマホでも自然な挙動を実現しやすくなります。
重要なのは「どのデバイスでどの挙動を見せるべきか」を最初に決めることです。
設計の初期段階で方針を決めておくと、後の修正が楽になります。
any-hoverについて友達と話していたとき、彼はスマホだけの人だと思っていたけれど、実はPCやスタイラスを持つ人がいる環境ではany-hoverがtrueになることがある。つまり、デザインを作るときに、hoverを主役に置くか、any-hoverの存在を前提に柔軟性を持たせるかで大きく変わる。私は、CSS3以降のメディアクエリを併用して、hoverはデスクトップ向け、any-hoverは「複数入力がある環境」用の補助的なスタイルとして使うのが現実的だと考えている。設計時には、@media (hover: hover) と @media (any-hover: hover) の両方を意識することで、将来のデバイス変化にも対応しやすくなる。