JavaScript のイベントを禁止できる便利なプロパティなので、以下、覚え書き。
pointer-events プロパティとは
pointer-events プロパティはマウスなどのポインターデバイスのイベント(クリックなど)を制御できる CSS のプロパティ。
アンカーリンクに[ pointer-events: none; ]を指定するとリンクを無効化できる。
※ pointer-events プロパティはポインターデバイスのイベントは制御できるけど、キーイベントは制御できないので、キーボードを用いて操作した場合はリンクは無効化されないので注意。
pointer-events の記述方法
無効化したい a 要素の親要素に、CSS で下記のように記述して指定する。
.sample a {
pointer-events: none;
}
この記述によってアンカーリンクが無効化される。
デフォルトでは auto になっているので記述する必要は無いけど、none が指定されていて無効化されているものを有効化する時は、auto を記述する。
※ a 要素自身に直接指定すると無効にはならないので、a 要素の親要素に指定するけど、親要素に[ pointer-events: none; ]を指定してリンクを無効にしても、a 要素自身に[ pointer-events: auto; ] を指定するとリンクは有効になる。
デモ
(例)CSS で作成したボタンのアンカーリンクに[ pointer-events: none; ]を指定。
<div class="sample"><a href="https://hovys.net/pointer" target="_blank" rel="noopener noreferrer">リンク無効化</a></div>
.sample a {
pointer-events: none;
}
.sample a {
width: 300px;
background: #87aebf;
padding: 15px 0;
text-align: center;
font-size: 16px;
display: block;
margin-bottom: 20px;
border-radius: 10px;
color: #fff;
cursor: pointer;
pointer-events: none;
}
.sample a:hover {
background: #e64b21;
text-decoration: none;
}
対応ブラウザについて
Google Chrome、Mozila Firefox や iPhone、Android のブラウザは対応しているけど、IE 10 以下ではサポートされていないので、IE は IE 11 以上のみ対応している。
※IE 10 以下で閲覧して上記デモボタンをクリックした場合は、リンクは有効になっている。
使いたい CSS や HTML の機能がどのブラウザで対応しているのか確認する場合、プロパティのブラウザ対応状況を簡単にチェックできる『 Can I use 』というサービスがある。
『 Can I use 』の公式サイトは ⇒ こちら
IE 10 以下ではサポートされていないけど、使いどころが多い pointer-events プロパティはとっても便利。
