--- title: pointer-events slug: Web/CSS/pointer-events tags: - CSS - CSS Property - CSS プロパティ - Reference - SVG - pointer-events - 'recipe:css-property' translation_of: Web/CSS/pointer-events ---
pointer-events
は CSS のプロパティで、特定のグラフィック要素がポインターイベントの対象になる可能性のある環境 (存在する場合) を設定します。
/* キーワード値 */ pointer-events: auto; pointer-events: none; pointer-events: visiblePainted; /* SVG のみ */ pointer-events: visibleFill; /* SVG のみ */ pointer-events: visibleStroke; /* SVG のみ */ pointer-events: visible; /* SVG のみ */ pointer-events: painted; /* SVG のみ */ pointer-events: fill; /* SVG のみ */ pointer-events: stroke; /* SVG のみ */ pointer-events: all; /* SVG のみ */ /* グローバル値 */ pointer-events: inherit; pointer-events: initial; pointer-events: unset;
pointer-events
プロパティは、以下の値の一覧から選択した単一のキーワードとして指定します。
auto
pointer-events
プロパティが指定されていないときと同様にふるまいます。SVGコンテンツ内では visiblePainted
を指定したときと同じ効果になります。none
pointer-events
の別の値をセットされていた場合は、その子孫要素自体はポインターイベントのターゲットとなりえます。その場合、ポインターイベントはイベントキャプチャ/バブリングの過程で必要に応じて親要素のイベントリスナーをトリガーします。visiblePainted
visibility
プロパティに visible
が設定されていて、かつ、例えば fill
プロパティに none
以外の値が設定されている時の塗り (fill
)、もしくは stroke
プロパティが none
以外の時の線 (stroke
) の上にマウスカーソルがある場合のみ、要素がポインターイベントのターゲットになりえます。visibleFill
visibility
プロパティが visible
にセットされていて、塗り (fill
) の上にマウスカーソルがある場合にのみ、要素がポインターイベントのターゲットになりえます。 fill
プロパティの値でイベント処理が変化することはありません。visibleStroke
visibility
プロパティが visible
にセットされていて、線 (stroke
) の上にマウスカーソルがある場合にのみ、要素がポインターイベントのターゲットになりえます。 stroke
プロパティの値でイベント処理が変化することはありません。visible
visibility
プロパティが visible
にセットされていて、塗り (fill
) か線 (stroke
) の上にマウスカーソルがある場合にのみ要素がポインターイベントのターゲットになりえます。 fill
プロパティや stroke
プロパティの値でイベント処理が変化することはありません。painted
fill
プロパティが none
以外にセットされている塗りの(すなわち fill
)要素、もしくは stroke
のプロパティが none
以外にセットされている線の(すなわち stroke
)要素の上にマウスカーソルがいる場合にのみ要素がポインターイベントのターゲットになりえます。 visibility
プロパティの値はイベントプロセスに影響を与えません。fill
fill
) の上にマウスカーソルがある場合にのみ要素がポインターイベントのターゲットになりえます。 fill
プロパティや visibility
プロパティの値でイベント処理が変化することはありません。stroke
stroke
) の上にマウスカーソルがある場合にのみ要素がポインターイベントのターゲットになりえます。 stroke
プロパティや visibility
の値でイベント処理が変化することはありません。all
fill
) と線 (stroke
) の上にマウスカーソルがある場合にのみ要素がポインターイベントのターゲットになりえます。 fill
や stroke
や visibility
の値でイベント処理が変化することはありません。このプロパティが指定されないと、 visiblePainted
の値の同じ性質が SVG コンテンツに適用されます。
値を none
に設定すると、要素がポインターイベントのターゲットではないことを示すのに加え、ポインターイベントが要素を「通過」して、代わりに要素の「下」をターゲットにすることを指示します。
pointer-events
を使用して要素がポインターイベントのターゲットとなることを防止するということは、必ずしもその要素のイベントリスナーが起動されない、することができないという意味ではありません。仮に要素の子要素のひとつで、 pointer-events
がポインターイベントのターゲットになるよう明示的に設定されていた場合、その子要素をターゲットにするどのようなイベントも親要素を通過し、その際に親要素に設定されたイベントリスナーを起動します。もちろん、これらの子要素に触れず親要素にだけ触れるマウスの動きは、子要素と親要素のどちらにも捕まえられることはありません (親要素を「通過」し、その下にあるものがターゲットになります)。
pointer-events: none
を持った要素は、 Tab キーを使用したキーボードナビゲーションによってフォーカスを受け取ります。
私たちは HTML で、どのような要素が、どんな時に、ポインターイベントを「捕まえる」かを (auto
と none
だけではなく) より細かく制御できるようにしたいと思っています。今後の HTML で pointer-events
をどのように拡張すべきかを決めるうえで、このプロパティで実現したい具体例があれば、この wiki ページの Use Cases セクションに記入してください (きれいに整理してからなどと気にしなくても大丈夫です)。
{{cssinfo}}
この例では、すべての画像のポインターイベント (クリック、ドラッグ、ホバー等) を無効にします。
img { pointer-events: none; }
この例では、 http://example.com へのリンクのポインターイベントを無効にします。
<ul> <li><a href="https://developer.mozilla.org">MDN</a></li> <li><a href="http://example.com">example.com</a></li> </ul>
a[href="http://example.com"] { pointer-events: none; }
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('SVG2', 'interact.html#PointerEventsProperty', 'pointer-events')}} | {{Spec2('SVG2')}} | |
{{SpecName('SVG1.1', 'interact.html#PointerEventsProperty', 'pointer-events')}} | {{Spec2('SVG1.1')}} | 初回定義 |
このプロパティは HTML 要素に対する拡張であり、 CSS Basic User Interface Module Level 3 の草稿に記述がありますが、現在では同標準の Level 4 に組み込まれています。
{{Compat("css.properties.pointer-events")}}