pointer-events & touch-action
Mit pointer-events steuerst du, ob ein Element auf Mausklicks und Touch-Ereignisse reagiert. Mit touch-action legst du fest, welche Touch-Gesten der Browser verarbeitet. Beide Properties sind essentiell für interaktive Overlays, dekorative Elemente und optimierte mobile Nutzererlebnisse.
- Syntax
- pointer-events: auto | none
- Initialwert
- auto
- Vererbt
- Ja
- Animierbar
- Nein
- Kategorie
- Interaktion
- Werte
- 9
- Beispiele
- 5
- Browser
- 5 von 5
- 0 von 5
- Stand
- 15.02.2026
Grundlagen
pointer-events: none macht ein Element unsichtbar für alle Maus- und Touch-Interaktionen. Klicks gehen direkt durch das Element hindurch zu dem, was darunter liegt. Das ist perfekt für dekorative Overlays, Wasserzeichen oder Loader-Animationen, die den Inhalt nicht blockieren sollen.
touch-action gibt dir Kontrolle über Touch-Gesten auf mobilen Geräten. Du kannst Zoom, Pan und andere native Browser-Gesten deaktivieren oder einschränken. Das ist wichtig für Custom-Drag-Interfaces, Spiele oder komplexe Web-Apps, die eigene Touch-Logik brauchen.
Wichtig: pointer-events: none entfernt das Element nicht aus dem Accessibility-Tree. Screenreader finden es weiterhin, Keyboard-Navigation funktioniert normal. Das ist kein Ersatz für das disabled-Attribut.
Syntax & Werte
9 Wertepointer-events
touch-action
Beispiele
5 BeispieleEin dekoratives Overlay, das visuell über dem Inhalt liegt, aber Klicks durchlässt. Buttons und Links darunter bleiben voll funktional.
.overlay {
position: absolute;
inset: 0;
pointer-events: none; /* Klicks gehen durch */
background: linear-gradient(
135deg,
rgba(26, 86, 219, 0.1),
rgba(124, 58, 237, 0.1)
);
}<div class="container">
<div class="overlay"></div>
<div class="content">
<p style="margin: 0 0 1rem 0; font-family: system-ui, sans-serif; color: #111827;">Dieser Text ist unter einem Overlay, aber der Button funktioniert:</p>
<button onclick="alert('Klick durchgegangen!')">Klick mich</button>
</div>
</div> Ein Wasserzeichen über Text, das Lesbarkeit nicht stört und Text-Selektion nicht blockiert.
.watermark {
position: absolute;
pointer-events: none; /* Text darunter bleibt selektierbar */
user-select: none;
color: rgba(220, 38, 38, 0.08);
font-size: 4rem;
transform: translate(-50%, -50%) rotate(-45deg);
}<div class="watermark-container">
<div class="watermark">ENTWURF</div>
<div class="text-content">
<p>Dieser Text kann normal selektiert und gelesen werden, obwohl ein Wasserzeichen darüber liegt. Das Wasserzeichen blockiert keine Interaktionen.</p>
<p>Versuch mal, diesen Text zu markieren: funktioniert perfekt!</p>
</div>
</div> Formular-Bereich, wo Double-Tap-Zoom deaktiviert ist für bessere Touch-UX. Pan und Pinch-Zoom funktionieren weiter.
/* Kein Double-Tap-Zoom auf Formularen */
.form-area {
touch-action: manipulation;
}
/* Pan + Pinch-Zoom bleiben erlaubt,
nur Double-Tap-Zoom wird deaktiviert */<div class="form-area">
<div class="form-group">
<label for="username">Benutzername</label>
<input type="text" id="username" placeholder="Kein Double-Tap-Zoom">
</div>
<div class="form-group">
<label for="email">E-Mail</label>
<input type="email" id="email" placeholder="auf Mobile besser">
</div>
<button>Absenden</button>
</div> Ein Drag-Interface, wo alle nativen Touch-Gesten deaktiviert sind. Nur Custom-JavaScript verarbeitet Touch-Events.
.drag-area {
touch-action: none; /* Alle Gesten deaktiviert */
user-select: none;
}
/* JavaScript übernimmt die Touch-Events:
pointerdown, pointermove, pointerup */<div class="drag-area">
<div class="drag-box">
Zieh mich!
</div>
<p class="drag-info">
touch-action: none, Zoom & Pan deaktiviert
</p>
</div> Barrierefreiheit
pointer-events: none entfernt ein Element nicht aus dem Accessibility-Tree. Screenreader lesen es weiterhin vor, Keyboard-Navigation funktioniert normal. Es ist kein Ersatz für semantisches HTML oder das disabled-Attribut.
Wenn du einen Button deaktivieren willst, nutze disabled, nicht pointer-events: none. Das disabled-Attribut kommuniziert den Status an Assistive Technologies und verhindert auch Keyboard-Fokus.
touch-action: none kann Pinch-Zoom deaktivieren. Das ist schlecht für Barrierefreiheit. Nutzer mit Sehbehinderung brauchen Zoom. Setze touch-action: none nur auf kleine, spezifische Drag-Bereiche, nie auf die ganze Seite.
Teste immer mit echten mobilen Geräten und Screenreadern, ob deine Interaktionen für alle zugänglich bleiben.
Häufige Fehler
5 Fehler 01 pointer-events: none als Disabled-Ersatz
disabled-Attribut. 02 Keyboard-Navigation vergessen
pointer-events: none kann weiterhin per Tab fokussiert werden. Setze tabindex="-1" wenn du das verhindern willst. 03 touch-action: none auf der ganzen Seite
04 Nicht auf echten mobilen Geräten testen
05 Erwarten, dass pointer-events die Tab-Reihenfolge ändert
Browser-Kompatibilität
5 von 5pointer-events und touch-action werden von allen modernen Browsern vollständig unterstützt.
-
Chrome
Komplett
-
Firefox
Komplett
-
Safari
Komplett
-
Edge
Komplett
-
Opera
Komplett
Email-Kompatibilität
0 von 5pointer-events und touch-action haben in E-Mails keine Wirkung, da E-Mail-Clients keine erweiterten Pointer-Events unterstützen.
-
Apple Mail
Keine
Nicht unterstützt
-
Gmail
Keine
Nicht unterstützt
-
Outlook
Keine
Nicht unterstützt
-
Yahoo Mail
Keine
Nicht unterstützt
-
Thunderbird
Keine
Nicht unterstützt
Newsletter
einmal die Woche, kostenlosNeue Artikel und Videos, was sich auf der Lernplattform tut, und ab und zu ein Sonderpreis zum Kursstart. Kurz genug, dass du es auch liest.
Zuletzt verschickt · KW 40
Einmal alles neu, und die Lernplattform ist da