Scrollbars
Scrollbars sind Bedienelemente des Browsers. Mit CSS lassen sich ihre Breite und Farbe anpassen. Wie sie genau aussehen, hängt trotzdem vom Browser, Betriebssystem und den persönlichen Systemeinstellungen ab.
Die Eigenschaften werden auf das Element gesetzt, das gescrollt wird. Mit html können sie auf die Scrollbar der ganzen Seite angewendet werden.
Properties im Überblick
scrollbar-widthbestimmt die Breite der Scrollbarscrollbar-colordefiniert die Farben von Schieber und Hintergrundscrollbar-gutterreserviert Platz für eine Scrollbar::-webkit-scrollbarermöglicht zusätzliche, nicht standardisierte Gestaltung
1. scrollbar-width
scrollbar-width legt fest, ob der Browser eine normale, schmale oder keine sichtbare Scrollbar zeichnet. Die konkrete Breite wird vom Browser und Betriebssystem bestimmt.
auto– Standardbreite des Browsersthin– schmalere Scrollbarnone– Scrollbar ausblenden; der Inhalt bleibt scrollbar
.container {
scrollbar-width: thin;
}
Wichtig: Verwende none nur, wenn das Scrollen weiterhin klar erkennbar und mit Maus, Touch und Tastatur möglich ist.
2. scrollbar-color
scrollbar-color erhält entweder den Wert auto oder zwei Farben. Die erste Farbe gilt für den beweglichen Schieber, die zweite für den Hintergrund.
auto– Der Browser bestimmt die Farben.<color> <color>– Erste Farbe: Thumb, zweite Farbe: Track- CSS-Farbwerte wie Hex, RGB, OKLCH oder
transparentsind erlaubt. - Verläufe und Bilder sind nicht erlaubt.
.container {
scrollbar-color: deeppink antiquewhite;
}
Standard Scrollbar
Das Beispiel kombiniert die standardisierten Eigenschaften scrollbar-width und scrollbar-color.
.demo-scrollbar {
height: 200px;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: deeppink antiquewhite;
}
3. scrollbar-gutter
Wenn eine klassische Scrollbar erscheint, benötigt sie Platz und kann den Inhalt verschieben. Mit scrollbar-gutter lässt sich dieser Platz im Voraus reservieren.
auto– Der Browser reserviert nur dann Platz, wenn er benötigt wird. Das ist der Standard.stable– Platz für die Scrollbar bleibt reserviert.stable both-edges– Platz wird an beiden Seiten reserviert, damit der Inhalt symmetrisch bleibt.
.container {
overflow: auto;
scrollbar-gutter: stable;
}
Hinweis: Bei Overlay-Scrollbars ist der Effekt möglicherweise nicht sichtbar, weil diese über dem Inhalt liegen und keinen eigenen Platz benötigen.
WebKit-Pseudoelemente
Chromium-basierte Browser und Safari unterstützen zusätzliche Pseudoelemente mit dem Präfix ::-webkit-. Damit lassen sich einzelne Bestandteile der Scrollbar gestalten. Diese Schreibweisen sind nicht standardisiert und können sich je nach Browser unterschiedlich verhalten.
::-webkit-scrollbar– gesamte Scrollbar::-webkit-scrollbar-track– Hintergrund der Scrollbar::-webkit-scrollbar-thumb– beweglicher Schieber::-webkit-scrollbar-button– Schaltflächen der Scrollbar, sofern vorhanden::-webkit-scrollbar-corner– Ecke zwischen horizontaler und vertikaler Scrollbar
Werden auf demselben Element standardisierte Werte für scrollbar-color oder scrollbar-width verwendet, können diese die WebKit-Gestaltung überschreiben.
Scrollbar mit Verlauf
Mit den WebKit-Pseudoelementen sind Verläufe, Rahmen und Hover-Effekte möglich.
.element::-webkit-scrollbar {
width: 12px;
}
.element::-webkit-scrollbar-track {
background: antiquewhite;
}
.element::-webkit-scrollbar-thumb {
border: 2px solid antiquewhite;
background: linear-gradient(to bottom, deeppink, indigo);
}
.element::-webkit-scrollbar-thumb:hover {
background: deeppink;
}
Accessibility
- Schieber und Hintergrund brauchen genügend Kontrast.
- Sehr schmale Scrollbars sind mit der Maus schwieriger zu bedienen.
- Eine ausgeblendete Scrollbar darf nicht die einzige Information sein, dass ein Bereich scrollbar ist.
- Teste das Scrollen mit Maus, Trackpad, Touch und Tastatur.
Kurz gesagt
scrollbar-widthsteuert die Breite der Scrollbar.scrollbar-colordefiniert die Farbe von Thumb und Track.scrollbar-gutterverhindert Layoutverschiebungen durch klassische Scrollbars.- WebKit-Pseudoelemente bieten mehr Gestaltungsmöglichkeiten, sind aber nicht standardisiert.
- Browser, Betriebssystem und Systemeinstellungen beeinflussen das Ergebnis.
Wie ein eigener Scroll-Container entsteht, zeigt CSS Overflow.