pointer-events

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Die Eigenschaft pointer-events ermöglicht die Steuerung, wie HTML-Elemente auf Maus-/Touch-Ereignisse reagieren – einschließlich CSS-Hover-/Aktivzuständen, Klick-/Tippereignissen in Javascript und ob der Cursor sichtbar ist oder nicht.

.avoid-clicks {
  pointer-events: none;
}

Während die Eigenschaft pointer-events *elf* mögliche Werte hat, sind alle bis auf drei für die Verwendung mit SVG reserviert. Die drei gültigen Werte für jedes HTML-Element sind:

  • none verhindert alle Klick-, Zustands- und Cursoroptionen auf dem angegebenen HTML-Element.
  • auto stellt die Standardfunktionalität wieder her (nützlich für Kindelemente eines Elements, bei dem pointer-events: none; angegeben ist).
  • inherit verwendet den Wert pointer-events des Elternelements.
Check out this Pen!

Wie oben gezeigt, ist der Haupteinsatzfall für pointer-events, dass Klick- oder Tippverhalten ein Element durchdringen und ein anderes Element darunter auf der Z-Achse erreichen kann. Dies wäre beispielsweise für grafische Overlays nützlich oder um Elemente mit opacity auszublenden (z.B. Tooltips) und trotzdem die Textauswahl auf dem darunter liegenden Inhalt zu ermöglichen.

Interessante Punkte

  • „Die Verwendung von pointer-events in CSS für Nicht-SVG-Elemente ist experimentell. Das Feature war Teil des CSS3 UI Draft Specifications, wurde aber aufgrund vieler offener Fragen auf CSS4 verschoben.“ — Mozilla MDN
  • „Wenn Sie einen Klick-Event-Listener zu einem Element hinzufügen und dann den pointer-events-Stil entfernen (oder seinen Wert auf auto ändern), wird der Klick-Event die vorgesehene Funktionalität auslösen. Grundsätzlich respektiert der Klick-Event den pointer-events-Wert.“ — David Walsh

Weitere Ressourcen

Browser-Unterstützung

Diese Browser-Support-Daten stammen von Caniuse, wo Sie weitere Details finden. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version unterstützt.

Desktop

ChromeFirefoxIEEdgeSafari
43.611124

Mobil / Tablet

Android ChromeAndroid FirefoxAndroidiOS Safari
1271272.13.2

Die Unterstützung ist in einigen Browsern tiefer, wenn sie auf <svg> angewendet wird, z. B. unterstützt IE 9 dies.