pointer-eventsプロパティでクリックイベントを無効化にする|気になるCSSプロパティ

今回はクリックイベント判定を操作するpointer-eventsプロパティについてじっくり見ていきます。
使い方
pointer-eventsプロパティは、基本的に値はautoかnoneのどちらかです。
auto(デフォルト)が通常通りの挙動になり、noneを指定するとクリックイベントが無効になります。
クリックイベントとは「クリック」「ホバー」の事を指していて、テキストの選択は可能です。
.btn {
pointer-events: auto; // クリックイベント有効
}
.btn.disabled{
pointer-events: none; // クリックイベント無効
}ちなみに、テキストの選択を無効化したい場合はuser-selectという別のプロパティを使用します。
対応状況

CSS pointer-events (for HTML) – Can I use…
Can I useを見ると、対応状況はOpera Miniを除けば全て対応されています。IEも11以降は対応しているので、使ってもほぼほぼ問題ないでしょう。
使い所
「何に使うの?」と思う人もいるかもしれませんが、以下のような使い方が考えられます。
- PCだと一部クリックだが、SPだと全体をクリックできるようにしたい時
- <input>系(特に<select>)の装飾をする時に、装飾にもクリック判定が効く
- disabled状態にわざわざホバー時のスタイル打ち消しをしなくても、pointer-events一行書くだけでhoverしなくなる
普通のWebサイトというより、WebサービスやWebアプリの実装時に使うことが多そうです。
selectの装飾に使ってみる
例えばselect要素に装飾を当てたい時、select要素には疑似要素を付ける事ができません。
ですから、selectをlabelやdivで囲ってそこに擬似要素を付けて装飾をします。
しかし、そのままではアイコン部分をクリックしてもselectは反応しません。

そこで、pointer-eventsを使います。
label:beforeに対してpointer-events: none;を指定すると、label:beforeのクリックイベントが無効化されて後ろにあるselectがクリックされます。
決してよく使うわけではありませんが、このようにユーザーの使い勝手をよくする上で覚えていて損はないプロパティになります。

Emmetで複数のタグを一括展開して、コーディングスピードをさらに上げる方法
MAMPでローカル開発環境にWordPressをインストールする手順
Facebookでシェアした記事の画像反映ができていない時の修正方法
さくらのレンタルサーバで.htaccessが原因で500エラーになってしまう場合のチェックリスト
JavaScriptで特定のOSやブラウザの判定を行う方法
CodeAnywhereでターミナルに触る練習をする
Visual Studio Codeで読み込んだCSSで設定されているclass名の入力補完をしてくれる拡張機能「HTML CSS Support」
思考したり情報整理したい時はMarkdown記法で文章を書き出そう!!Webデザイナーの情報整理術
HTML・CSSでWebサイト制作を行う際に必要なツール
SourceTreeの外部Diff / MergeツールをKaleidoscopeに設定する
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」