::-webkit-scrollbar CSS pseudo-element
Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.
Das CSS-Pseudoelement ::-webkit-scrollbar beeinflusst die Darstellung der Scrollbar eines Elements, wenn dessen Inhalt scrollbar ist.
Die standardisierten Eigenschaften scrollbar-color und scrollbar-width können als Alternativen für Browser verwendet werden, die dieses Pseudoelement und die zugehörigen ::-webkit-scrollbar-*-Pseudoelemente nicht unterstützen (siehe Browser-Kompatibilität).
Hinweis:
Wenn die berechneten Werte von scrollbar-color und scrollbar-width eines Elements nicht auto sind, überschreiben sie die Gestaltung durch ::-webkit-scrollbar-*.
Da scrollbar-color vererbt wird, ist ein Element auch dann betroffen, wenn die Eigenschaft für ein Vorfahrenelement gesetzt wurde, nicht aber für das Element selbst.
Wenn Sie scrollbar-color: auto für das Element festlegen, wird dessen Gestaltung durch ::-webkit-scrollbar-* wiederhergestellt, sofern sie zuvor durch eine scrollbar-color-Festlegung für ein Vorfahrenelement außer Kraft gesetzt wurde.
Weitere Einzelheiten finden Sie unter Fallback für Scrollbar-Stile hinzufügen.
CSS-Selektoren für Scrollbars
Mit den folgenden Pseudoelementen können Sie verschiedene Teile der Scrollbar in WebKit-Browsern anpassen:
::-webkit-scrollbar— die gesamte Scrollbar.::-webkit-scrollbar-button— die Schaltflächen auf der Scrollbar (Pfeile nach oben und unten, die jeweils um eine Zeile scrollen).::-webkit-scrollbar:horizontal— die horizontale Scrollbar.::-webkit-scrollbar-thumb— der verschiebbare Scrollgriff.::-webkit-scrollbar-track— die Spur (Fortschrittsleiste) der Scrollbar, bei der ein grauer Balken über einem weißen Balken liegt.::-webkit-scrollbar-track-piece— der Teil der Spur (Fortschrittsleiste), der nicht vom Scrollgriff bedeckt ist.::-webkit-scrollbar:vertical— die vertikale Scrollbar.::-webkit-scrollbar-corner— die untere Ecke der Scrollbar, an der die horizontale und die vertikale Scrollbar zusammentreffen. Dies ist häufig die untere rechte Ecke des Browserfensters.::-webkit-resizer— der verschiebbare Griff zum Ändern der Größe, der in der unteren Ecke einiger Elemente erscheint.
Barrierefreiheit
Sie sollten Scrollbars möglichst nicht individuell gestalten: Wenn ihre Darstellung vom Standard abweicht, geht die äußere Konsistenz verloren, was die Benutzerfreundlichkeit beeinträchtigt. Wenn Sie Scrollbars dennoch gestalten, achten Sie auf ausreichenden Farbkontrast und darauf, dass Touch-Ziele mindestens 44 px breit und hoch sind. Siehe Techniken für WCAG 2.0: G183: Ein Kontrastverhältnis von 3:1 verwenden und WCAG 2.1 verstehen: Zielgröße.
Beispiele
>Scrollbars mit -webkit-scrollbar gestalten
CSS
.visible-scrollbar,
.invisible-scrollbar,
.mostly-customized-scrollbar {
display: block;
width: 10em;
overflow: auto;
height: 2em;
padding: 1em;
margin: 1em auto;
outline: 2px dashed cornflowerblue;
}
.invisible-scrollbar::-webkit-scrollbar {
display: none;
}
/* Demonstrate a "mostly customized" scrollbar
* (won't be visible otherwise if width/height is specified) */
.mostly-customized-scrollbar::-webkit-scrollbar {
width: 5px;
height: 8px;
background-color: #aaaaaa; /* or add it to the track */
}
/* Add a thumb */
.mostly-customized-scrollbar::-webkit-scrollbar-thumb {
background: black;
}
HTML
<div class="visible-scrollbar">
<h3>Visible scrollbar</h3>
<p>
Etiam sagittis sem sed lacus laoreet, eu fermentum eros auctor. Proin at
nulla elementum, consectetur ex eget, commodo ante. Sed eros mi, bibendum ut
dignissim et, maximus eget nibh. Phasellus blandit quam turpis, at mollis
velit pretium ut. Nunc consequat efficitur ultrices. Nullam hendrerit
posuere est. Nulla libero sapien, egestas ac felis porta, cursus ultricies
quam. Vestibulum tincidunt accumsan sapien, a fringilla dui semper in.
Vivamus consectetur ipsum a ornare blandit. Aenean tempus at lorem sit amet
faucibus. Curabitur nibh justo, faucibus sed velit cursus, mattis cursus
dolor. Pellentesque id pretium est. Quisque convallis nisi a diam malesuada
mollis. Aliquam at enim ligula.
</p>
</div>
<div class="invisible-scrollbar">
<h3>Invisible scrollbar</h3>
<p>
Thisisaveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongword
</p>
</div>
<div class="mostly-customized-scrollbar">
<h3>Custom scrollbar</h3>
<p>
Thisisaveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylongword<br />
And pretty tall<br />
thing with weird scrollbars.<br />
Who thought scrollbars could be made weird?
</p>
</div>
Ergebnis
Fallback für Scrollbar-Stile hinzufügen
Mit der @supports-At-Regel können Sie prüfen, ob ein Browser die standardisierten Eigenschaften scrollbar-color und scrollbar-width unterstützt. Andernfalls können Sie auf die ::-webkit-scrollbar-*-Pseudoelemente zurückgreifen.
Das folgende Beispiel zeigt, wie Sie Scrollbars mit scrollbar-color einfärben, wenn die Eigenschaft unterstützt wird, und andernfalls mit den ::-webkit-scrollbar-*-Pseudoelementen.
HTML
<div class="scroll-box">
<h1>Yoshi</h1>
<p>
Yoshi is a fictional dinosaur who appears in video games published by
Nintendo. Yoshi debuted in Super Mario World (1990) on the SNES as Mario and
Luigi's sidekick.
</p>
<p>
Throughout the mainline Super Mario series, Yoshi typically serves as
Mario's trusted steed.
</p>
<p>
With a gluttonous appetite, Yoshi can gobble enemies with his long tongue,
and lay eggs that doubly function as projectiles.
</p>
</div>
CSS
/* For browsers that support `scrollbar-*` properties */
@supports (scrollbar-color: auto) {
.scroll-box {
scrollbar-color: aquamarine cornflowerblue;
}
}
/* Otherwise, use `::-webkit-scrollbar-*` pseudo-elements */
@supports selector(::-webkit-scrollbar) {
.scroll-box::-webkit-scrollbar {
background: aquamarine;
}
.scroll-box::-webkit-scrollbar-thumb {
background: cornflowerblue;
}
}
Ergebnis
Im folgenden Beispiel können Sie innerhalb des umrandeten Felds vertikal scrollen, um die Wirkung der Scrollbar-Gestaltung zu sehen.
Spezifikationen
Nicht Bestandteil eines Standards.
Browser-Kompatibilität
>css.selectors.-webkit-scrollbar
css.selectors.-webkit-scrollbar-button
css.selectors.-webkit-scrollbar-thumb
css.selectors.-webkit-scrollbar-track
css.selectors.-webkit-scrollbar-track-piece
css.selectors.-webkit-scrollbar-corner
css.selectors.-webkit-resizer
Siehe auch
scrollbar-widthscrollbar-color- Keine benutzerdefinierten Scrollbars verwenden (2023)
- Scrollbar-Gestaltung auf developer.chrome.com (2024)
- Scrollbars gestalten auf WebKit.org (2009)