疑似クラスの:hoverと:activeのスマホでの挙動の違い

:hoverと:activeでの挙動の違い
疑似クラスの:hoverを使うと、ホバー時のスタイルが適応できて、:activeを使うとクリック時のスタイルの適応ができます。
それぞれの疑似クラスの区別を整理すると、下記のようになります。
:hover= 要素にマウスカーソルが乗っているときのスタイル:active= 要素をクリックしたときのスタイル
しかし、スマホの場合はマウスカーソルがないため、下記のような挙動の違いが出てきます。
:hover= タップ後、違う要素がタップされるまでのスタイル:active= タップ中のみのスタイル
そのため、スマホで何かをタップするときはホバーとアクティブが順に適応され、ホバーのスタイルに関しては他の要素がタップされるまでスタイルが残り続けます。
See the Pen :hover and :active by Masakazu Saito (@31mskz10) on CodePen.
リンク以外のタップ
また、<a>などのリンク要素なら問題ありませんが、<div>などの本来はクリックしないような要素に:hover、:activeを付けている場合はうまく反応しないことがあります。
そんなときは、要素に ontouchstart="" を付ければ解決できます。
<div class="box" ontouchstart=""></div>まとめ
:hoverと:activeの挙動に関しては、知識として知っておくレベルで問題なさそうです(わざわざメディアクエリで横幅が小さいときは:hoverと:activeのスタイルを変えるというのは面倒ですしあまり意味がなさそう)。
個人的にはスマホはマウスカーソルが無い分、「前にどこをクリックしたのか」が分かった方が使いやすい気もします。

Vue CLIでGA4を導入する方法
「とりあえず無料版!」ではなく、機能を知った上で判断したいMAMPとMAMP PROの比較
JavaScriptで配列内から特定条件の要素を探す方法
Facebookでシェアした記事の画像反映ができていない時の修正方法
Neovimを使い始める最初の一歩として便利な「LazyVim」
CSS疑似要素の「:empty」でタグの中身が空のときのスタイルを設定する
gzip圧縮をしてウェブサイトの表示スピードを上げる方法
Visual Studio Codeの設定を複数の端末間で同期する「Settings Sync」機能の使い方
WordPressって何なの?これからWordPressを勉強したい人がとりあえず知っておきたい事
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Stationの「My custom apps」機能を使って好きなウェブサイトをStationに追加する
Chrome拡張機能の「Create Link」を使って簡単にサイトリンクを生成する
Google Meetをさらに便利にする便利なChrome拡張機能と、公式でサポートされるようになった機能
Figmaでプラグインを使わずに複数のレイヤー名を一括変更する方法
EJSのincludeで別ファイルを読み込むときの画像パスを指定する方法
iStat Menusの「ネットワーク」アイコン表示と設定
WordPressのヘッダーにツールバーが表示されないときは、wp_headやwp_footerが入っているか確認
CSS Nite in Kobe, vol.50「今、企業が取り組むべきウェブ動画マーケティング」に参加してきました
Macの文字入力をもっと楽にする小技集
Chrome拡張機能の「Wappalyzer」を使ってウェブサイトの使用技術を確認する