pointer-events | スタイルシートリファレンス

適用できる要素全て
継承する
初期値auto

pointer-eventsとは?

CSSのpointer-eventsプロパティはポインターイベントの発生の対象を制御するプロパティです。

HTMLの全ての要素で設定可能なプロパティですが、全ての要素を対象にした設定と、SVGコンテンツを対象にした設定の2通りに別れます。

pointer-eventsで指定できる値

pointer-eventsプロパティではキーワード値のみを設定出来ます。そのキーワード値は

  • 全ての要素を対象にした場合
  • SVGを対象にした場合
で異なります。

全ての要素を対象とした場合

pointer-eventsプロパティは初期値のautononeのみ設定可能です。

  • auto: (初期値)未設定の場合と同じ通常の動作をします。
  • none: 要素をポインターイベントの対象外にする。つまりマウスイベントが発生しない。

SVGを対象にした場合

SVGコンテンツを対象とした場合はpointer-eventsプロパティは下記のキーワード値を設定することが出来ます。

それぞれポインターイベントの対象になるマウルカーソルの条件を表しています。
 

pointer-eventsプロパティの値
キーワード 意味
visible visibilityプロパティがvisibleの場合で、線か塗りつぶしの上にある場合
visibleFill visibilityプロパティがvisibleの場合で、塗りつぶしの上にある場合
visibleStroke visibilityプロパティがvisibleの場合で、線の上にある場合
fill 塗りつぶしの上にある場合
stroke 線の上にある場合
painted filleがnoneまたはstrokeがnone以外の要素の上にある場合
all 線か塗りつぶしの上にある場合

構文

/* 構文(全ての要素) */
pointer-events: auto | none;

/* 構文(SVGコンテンツ) */
pointer-events: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit;

pointer-eventsを使ったサンプルコード

pointer-eventsプロパティをnoneに設定して、a要素のポインターイベントを無効にしてみましょう。

上記のサンプルコードのプレビューの「リンク」をクリックしても、遷移しないと思います。これはpointer-eventsプロパティのnoneの設定による効果です。

このようにpointer-evetsプロパティでリンクをクリック禁止にする方法は一般的によくある方法で、慣習的にvoid(0)が利用されることもあります。

あわせて読みたい
JavaScript: void(0)の意味とは?代替手段も紹介!のイメージ
JavaScript: void(0)の意味とは?代替手段も紹介!
aタグのhref属性に設定されているJavaScript: void(0)の意味について解説します。またリンクを無効化させるvoid(0)の代替手段についてもサンプルコード付きで解説します。

pointer-eventsのブラウザ対応状況

CSSのpointer-eventsプロパティはモダンなブラウザのほぼ全てで対応しているプロパティです。SVGに対応しているブラウザではほぼ対応しています。しかし一部IEの古いバージョンなど非対応のブラウザがありますので、注意しましょう。

pointer-eventsプロパティの各ブラウザの対応状況は下記よりご確認頂けます。

Can I use... Support tables for HTML5, CSS3, etc

pointer-eventsの関連情報

IEでpointer-events: noneが効かない

IEではpointer-events: noneを設定しているはずなのに、効かない場合があります。下記でその対処法を解説しています。

あわせて読みたい
CSSのpointer-events: noneがIEで効かない場合の対処法!のイメージ
CSSのpointer-events: noneがIEで効かない場合の対処法!
CSSのpointer-events: noneとすることでマウスポインターでのクリックを無効にできますが、IEでこの設定が効かない場合があります。その対処法についてサンプルコード付きで解説します。