Erstellen und Anwenden von benutzerdefinierten Cursors mit CSS und Bildern

Benutzerdefinierte Cursors ermöglichen es Ihnen, das Benutzererlebnis mit visuellen Hinweisen anzupassen, die zu Ihrer Marke oder Ihren kreativen Zielen passen. Ob es sich um ein handgezeichnetes Symbol, einen spielähnlichen Zeiger oder einfach eine unterhaltsame Abwandlung des Standardpfeils handelt – die Erstellung eines benutzerdefinierten Cursors mit CSS ist einfacher als es klingt. Diese Anleitung zeigt Ihnen Schritt für Schritt, wie es geht.
Wichtige Erkenntnisse
- Lernen Sie, wie Sie integrierte Cursors und benutzerdefinierte Bild-Cursors anwenden
- Verstehen Sie Browser-Unterstützung, Dateiformate und Größenanpassung
- Vermeiden Sie häufige Probleme durch Fallback-Lösungen und Benutzerfreundlichkeit
Grundlegende Syntax der CSS-Eigenschaft cursor
CSS bietet eine Vielzahl von integrierten Cursor-Typen. So verwenden Sie sie:
.default {
cursor: default;
}
.pointer {
cursor: pointer;
}
.text {
cursor: text;
}
.help {
cursor: help;
}
.progress {
cursor: progress;
}
Diese integrierten Optionen decken Standardinteraktionen ab. Um darüber hinauszugehen, können Sie Ihr eigenes Bild verwenden.
Erstellen eines benutzerdefinierten Cursors aus einem Bild
Um ein Bild als Cursor zu verwenden, können Sie eine URL an die cursor
-Eigenschaft übergeben.
Beispiel:
.custom-cursor {
cursor: url('cursor.png') 4 4, auto;
}
url('cursor.png')
ist Ihr benutzerdefiniertes Bild4 4
ist der Hotspot (wo der Klick registriert wird)auto
ist der Fallback-Cursor, falls das Bild nicht geladen werden kann
Unterstützte Formate
.cur
und.ico
(funktionieren am besten unter Windows und Edge).png
(funktioniert weitgehend, kann aber Hotspots in einigen Browsern ignorieren).svg
(weniger unterstützt für Cursors)
Empfohlene Größe
- Bleiben Sie bei 32x32 Pixeln oder kleiner für konsistentes Verhalten
- Bilder größer als 128x128 könnten ignoriert oder inkonsistent skaliert werden
Cursor nur beim Hover
Um einen benutzerdefinierten Cursor nur beim Überfahren bestimmter Elemente anzuzeigen:
.button:hover {
cursor: url('hover-cursor.png'), pointer;
}
Dies behält den Standardcursor an anderer Stelle bei und passt das Interaktionsfeedback an.
Cursor-Ausrichtung und Kompatibilitätstipps
- Hotspot-Werte sind entscheidend – sie definieren den aktiven Punkt des Cursors.
- Fallbacks sorgen für eine elegante Degradierung.
- Tests in Chrome, Firefox, Safari und Edge sind unerlässlich.
.cursor-test {
cursor: url('cursor.png') 16 0, auto;
}
Verwenden Sie Tools wie Browser-Entwicklertools oder Bildbearbeitungsprogramme, um die richtigen Hotspot-Koordinaten zu bestimmen.
Zusätzlicher Tipp: Vermeiden Sie unscharfe Cursors
Einige Browser skalieren PNG-Cursors, wenn sie nicht pixelgenau sind. Um unscharfe Darstellung zu vermeiden:
- Verwenden Sie exakte 1:1-Auflösung (z.B. 32x32)
- Vermeiden Sie transparente Polsterung in Ihren Cursor-Bildern
Benutzerdefinierte animierte Cursors (optional)
Animierte Cursors werden nicht nativ unterstützt, aber es gibt zwei gängige Workarounds:
1. Verwenden Sie ein GIF
.cursor-gif {
cursor: url('animated-cursor.gif'), auto;
}
- Funktioniert in einigen Browsern, ist aber nicht konsistent.
- GIF kann flackern oder ignoriert werden.
2. Verwenden Sie JavaScript, um die Maus zu verfolgen
const cursor = document.querySelector('.cursor');
document.addEventListener('mousemove', e => {
cursor.style.left = e.pageX + 'px';
cursor.style.top = e.pageY + 'px';
});
Dann stylen Sie das .cursor
-div:
.cursor {
position: fixed;
pointer-events: none;
width: 32px;
height: 32px;
background-image: url('custom.png');
background-size: cover;
z-index: 9999;
}
Anwendungsfälle für animierte Cursors
- Spiele und spielerische Benutzeroberflächen
- Benutzerdefinierte kreative Websites oder Portfolios
Barrierefreiheit und UX-Überlegungen
Benutzerdefinierte Cursors sollten die Benutzerfreundlichkeit verbessern – nicht behindern. Beachten Sie:
- Vermeiden Sie das Ersetzen von Cursors bei Eingabefeldern und Links, es sei denn, es erhöht die Klarheit
- Stellen Sie sicher, dass visuelle Designs das erwartete Zeigerverhalten nicht beeinträchtigen
- Verwenden Sie klare Hotspots, um Klick-Fehlanpassungen zu vermeiden
Best Practices
- Testen Sie mit Tastatur- und Screenreader-Benutzern
- Halten Sie Cursors visuell unterscheidbar und leichtgewichtig
- Vermeiden Sie die globale Anwendung von Cursors (z.B. auf
body
), es sei denn, es macht im Kontext Sinn
Häufige Fallstricke und Debugging
Cursor wird nicht angezeigt?
- Bestätigen Sie, dass der Bildpfad korrekt ist
- Verwenden Sie unterstützte Formate und Abmessungen
- Fügen Sie einen Fallback hinzu:
cursor: url(...), auto;
Hotspot falsch ausgerichtet?
- Passen Sie die X- und Y-Koordinaten im
cursor
-Wert an - Vorschau in einem Bildbearbeitungsprogramm, um den genauen Klickpunkt zu bestimmen
Funktioniert nicht in Firefox oder Safari?
- Versuchen Sie,
.cur
oder.ico
anstelle von.png
zu verwenden - Vermeiden Sie SVG- und animierte Formate für kritische Interaktionen
- Safari ignoriert einige Bildcursor-Formate vollständig
Anwendung auf das falsche Element
Wenn Ihr Cursor nicht sichtbar ist, stellen Sie sicher, dass das CSS auf das sichtbare und interaktive Element angewendet wird. Zum Beispiel:
body {
cursor: url('cursor.png'), default;
}
Fazit
Benutzerdefinierte Cursors können Ihrer Benutzeroberfläche Eleganz und Verspieltheit verleihen, bringen aber Browser-Eigenheiten mit sich. Halten Sie sich an gut unterstützte Formate, testen Sie browserübergreifend und fügen Sie immer einen Fallback ein, um die Benutzerfreundlichkeit zu gewährleisten. Verwenden Sie benutzerdefinierte Cursors selektiv dort, wo sie die Klarheit verbessern oder das Branding verstärken, und vermeiden Sie übermäßigen Einsatz, wo sie Benutzer verwirren könnten.
FAQs
CUR und PNG sind am zuverlässigsten. ICO funktioniert unter Windows. SVG und GIF werden möglicherweise nicht konsistent unterstützt.
Überprüfen Sie den Bildpfad, die Größe (vorzugsweise 32x32) und stellen Sie einen Fallback mit 'auto' bereit.
Ja. Verwenden Sie eine Hover-Pseudoklasse, um einen benutzerdefinierten Cursor nur anzuwenden, wenn der Benutzer über bestimmte Elemente fährt.
Nicht zuverlässig. GIFs funktionieren möglicherweise in einigen Browsern. Für konsistente Animation verwenden Sie JavaScript, um ein benutzerdefiniertes Element zu bewegen.
Verwenden Sie Bilder mit genau 32x32 Pixeln ohne transparente Polsterung. Vermeiden Sie Skalierung in CSS.