疑似クラスの: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のスタイルを変えるというのは面倒ですしあまり意味がなさそう)。
個人的にはスマホはマウスカーソルが無い分、「前にどこをクリックしたのか」が分かった方が使いやすい気もします。

SourceTreeの外部Diff / MergeツールをKaleidoscopeに設定する
Visual Studio Codeのマルチカーソル機能で文字操作を一括で行う
CSS疑似要素(::beforeや::after)のcontent内で改行したり半角スペースを複数入力する方法
Local by FlywheelでWordPressのローカル開発環境構築のハードルが一気に下がる
SourceTreeでマージ時に「fatal: You have not concluded your merge (MERGE_HEAD exists).」と表示される場合の対処法
Dashで「Secure Input is Enabled」と表示される場合の対処法
JavaScriptで簡単にCookie操作ができるライブラリ「js-cookie」
Google Maps APIでピンの見た目をカスタマイズする方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
SafariのURLメニュー部分も考慮できるCSSの単位「dvh」
MacでEvernoteにWebデザインをストックしたいならPaparazzi!とFolder Action Scriptの組み合わせがオススメ!!
クリップボード履歴を複数一括でペーストしたり、コピーした順にペーストするアプリ「Paste」
Visual Studio Codeのエクスプローラー上でファイル・フォルダの複製ができるようになる拡張機能「Duplicate action」
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
「ヴィパッサナー瞑想」で自分の感情や身体の感覚を客観視する
人前でデモをするための設定や、始める前のチェックリスト
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Sketchの画像周りの基本操作|画像の追加方法や色補正、切り抜き方法まで
HTML・CSSでWebサイト制作を行う際に必要なツール