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がクリックされます。
決してよく使うわけではありませんが、このようにユーザーの使い勝手をよくする上で覚えていて損はないプロパティになります。

横幅が広がったときの挙動が変わる!CSS Gridの「auto-fill」と「auto-fit」の違い
Visual Studio Codeの基本|概要やインストールから日本語化など最低限の設定方法
SourceTreeで環境設定の「カスタムアクション」「アップデート」「高度な設定」が選択できない
scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法
Nuxt.jsの基本と最初のセットアップ「プロジェクトの作成と起動をするまでの流れ」
TwitterとFacebook用のOGP設定方法と表示確認方法
サイトのPocketに保存された回数や、あとで読まれた回数まで解析できるPocketのパブリッシャーツールの登録方法
無料版を使っている人は検討する価値あり!MAMP PRO 5で簡単にローカル開発環境を構築・管理する
Visual Studio CodeからFTPソフトのTransmitを使用する拡張機能「Transmit」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Hazelがちゃんと動作していない?そう思ったときに確認すること
Stationの「My custom apps」機能を使って好きなウェブサイトをStationに追加する
iPadの定番手書きノートアプリ「GoodNotes 5」の基本的な使い方とオススメの設定
選択オブジェクトに合わせてアートボードを変更するillustratorのスクリプト
アプリやフォルダを一気に開ける「Workspaces」の環境設定
Figmaで画面遷移図やフローチャートをつくるときに線を自動で引いてくれるプラグイン「Autoflow」
Figmaでデザインを作成するときの基本的な操作方法
Keyboard MaestroでMacログイン時にアプリの遅延起動を行う
知っていると作業が少しラクになるMacの豆知識 #1日1Tips – 2019年12月
Figmaで細かいアニメーションを作成できるプラグイン「Motion」