これは疑似要素の便利な使い方! レイアウトは変えずにクリックできるエリアを広げるCSSのテクニック

ボタンやアイコンなどでクリック・タップ可能なエリアを広げたいと思ったことがあると思います。a要素をブロックにしてpaddingを加えたり、JavaScriptを使用したりといった方法がありますが、今回はレイアウトはそのまま変えずにクリック・タップ可能な領域を広げるCSSのテクニックを紹介します。

下記は、左は通常のクリックエリア、右はクリックエリアを広げたものです。デスクトップ時は小さいままで、スマホ時には44pxに広げるといったことも簡単にできます。

レイアウトは変えずにクリックできるエリアを広げるCSSのテクニック

実際の動作は、下記でもページでご覧ください。左は通常のクリックエリア、右はクリックエリアを広げたものです。
「デバッグモード」をクリックすると、拡大されたクリックエリアが表示されます。

See the Pen
::after content to increase clickable area
by coliss (@coliss)
on CodePen.

マウスで操作する時には操作性にそれほど違いは感じないかもしれませんが、指でタップする時には操作のしやすさがかなり変わります。

HTMLは、シンプルです。
L.5の.with-pseudoがクリックエリアを広げた方です。

クリックエリアを広げるCSSは、下記の通り。
::afterに、positon: absolute;inset: -{value}px;を設定します。これでその要素の周囲により大きな目には見えないクリックエリアが作成され、レイアウトを変えずにクリック・タップしやすくなります。

また、Tailwindを使用している場合はユーティリティにtouch-hitboxがあり、WCAG AAAのターゲットサイズの最小値に自動的に合わせる、とのことです。

元ネタは、下記ポストより。

sponsors

top of page

©2025 coliss