ボタンのデザインを変えずに、クリック領域だけ広げるTips

CSS シークレット」で書かれていた備忘録で、言葉では伝えるのが難しいですが、 開発していると、ボタンそのものの width と height では領域が狭くて、ユーザーさんはクリックしにくい、 ただそのボタンのデザインは変更せずに、クリックできる領域だけを広げたいという時があります。そんな時の実装方法です。

実装方法

擬似要素を使って下記のように実装します。

.target {
  position: relative;
}
.target:before {
  content: "";
  position: absolute;
  top: -15px;
  bottom: -15px;
  right: -15px;
  left: -15px;
}

上記の場合、ボタンの周りに 15px クリック領域が出来ます。

他のやり方も

擬似要素を既に使っている時は、ボーダーを使ったやり方もあります。

.target {
  border: 15px solid transparent;
}

この場合、ボタン領域に 15px の透明なボーダーが出来て領域が広がります。

もしこれでボタンの背景が広がってしまう場合は、background-clip: padding-box;を指定することで回避することもできます。

.target {
  border: 15px solid transparent;
  background-clip: padding-box;
}