疑似クラスの: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 3でfaviconの設定をする方法
WordPressの自動バックグラウンド更新を無効にする方法とその注意点
Visual Studio Codeで「.html」拡張子以外のファイルでもEmmetを使えるようにする
CSSのカスタムプロパティ(変数機能)の使い方
scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法
WordPressのカスタム投稿タイプを追加後、ページは存在しているはずなのに404になる場合の解決方法
Nuxt.jsの基本と最初のセットアップ「プロジェクトの作成と起動をするまでの流れ」
様々な作業を自動化するgulpの基礎と導入方法
CSSでclassがついていないタグにだけスタイルを当てる方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Keynote × Keyboard Maestroでスライド作りを徹底的にラクにするマクロサンプル
CSSだけで画像の比率を保ってトリミングできる「object-fit」
デフォルトのままじゃもったいない!Google日本語入力での品詞の設定方法と意味まとめ
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
ジッと瞑想しているのがツラい人にオススメな、歩きながら行う「歩行瞑想」
Path Finder 8で使えるツールバーの項目一覧
Backlogフリープランでプライベートの課題管理を行う方法
Bracket Pair ColorizerでVisual Studio Codeの括弧を色分けして見やすくする
Visual Studio Codeの「Debugger for Chrome」でJavaScriptのデバッグを行う