株式会社オートプロジェクト

Columnコラム
2023年1月27日
重なった要素の後側にリンクを効かせる方法

今回は、pointer-eventsプロパティを使用して、重なった要素の後側にリンクを効かせる方法を紹介します!

また、下記の記事のではスマートフォン、タブレットのみに効かせる方法としても紹介しました! 気になる方は併せてご覧ください!

HTMLで電話番号のリンクを設定する方法 – スマートフォンのみの設定方法も紹介

pointer-eventsプロパティとは

ホバーやクリックなどのマウスイベントを無効にしたように見せるプロパティです。

※キーボードのタブによるフォーカスとエンターによるクリックはできるので注意

pointer-eventsの初期値は「auto」でマウスイベントのがホバーやクリック有効

「none」を指定するとホバーやクリックが無効

設定は簡単です。

重なっている上の要素に[pointer-events:none]を指定するだけです。

.sample {
pointer-events: none;
}

まずは、重なっている画像に[pointer-events:none]に指定した場合ととそうでない場合のデモです。デモの[Result]の[Run Pen]をクリックし、テキストと重なっている箇所の画像をそれぞれホバーやクリックをしてみてください。

See the Pen
Untitled
by 林 (@hayashi-akina)
on CodePen.

このように、[pointer-events:none]にすると重なった要素の後側にある要素がクリックできるようになりました!

次に、画像にホバー設定をして全体にリンクを設定した場合、リンクは効きますが、テキストをクリックすると、画像のホバーが効きません。

こちらも、[pointer-events:none]を設定した場合とそうでない場合のテキストをホバーやクリックしてください。

See the Pen
Untitled
by 林 (@hayashi-akina)
on CodePen.

[pointer-events:none]を指定してあるテキストは、画像のホバーも効くようになりました。

pointer-eventsプロパティは、以下の場合にも使えるのでぜひ使ってみてください!

  • 画像が保存されるのを防止
  • ウィンドウ幅によってリンクをクリックさせないようにする
  • 表示されているナビゲーションリンクのみ無効化する