::-webkit-scrollbar
Нестандартный: Эта функция нестандартна и не соответствует стандартам. Не используйте её на сайтах, работающих с Web: она не будет работать для всех пользователей. Также могут существовать большие несовместимости между реализациями, и поведение может измениться в будущем.
Псевдоэлемент ::-webkit-scrollbar CSS влияет на стиль полосы прокрутки элемента, когда у него есть прокручиваемый переполнение.
Стандартные свойства scrollbar-color и scrollbar-width могут быть использованы в качестве альтернатив для браузеров, которые не поддерживают этот псевдоэлемент и связанные ::-webkit-scrollbar-* псевдоэлементы (см. Совместимость с браузерами).
Примечание: Если scrollbar-color и scrollbar-width поддерживаются и имеют любое значение, отличное от auto , они переопределят стили ::-webkit-scrollbar-* . Подробнее см. Добавление резервного варианта для стилей полосы прокрутки.
Селекторы полосы прокрутки CSS
Вы можете использовать следующие псевдоэлементы для настройки различных частей полосы прокрутки для браузеров WebKit:
-
::-webkit-scrollbar— вся полоса прокрутки. -
::-webkit-scrollbar-button— кнопки на полосе прокрутки (стрелки, указывающие вверх и вниз, которые прокручивают на одну строку). -
::-webkit-scrollbar:horizontal— горизонтальная полоса прокрутки. -
::-webkit-scrollbar-thumb— перетаскиваемая область прокрутки. -
::-webkit-scrollbar-track— дорожка (полоса прогресса) полосы прокрутки, где есть серая полоса поверх белой. -
::-webkit-scrollbar-track-piece— часть дорожки (полосы прогресса), не покрытая областью. -
::-webkit-scrollbar:vertical— вертикальная полоса прокрутки. -
::-webkit-scrollbar-corner— нижний угол полосы прокрутки, где пересекаются горизонтальная и вертикальная полосы прокрутки. Часто это нижний правый угол окна браузера. -
::-webkit-resizer— перетаскиваемая ручка изменения размера, которая появляется в нижнем углу некоторых элементов.
Доступность
Авторы должны избегать стилизации полос прокрутки, так как изменение внешнего вида полос прокрутки от значения по умолчанию нарушает внешнюю согласованность, что негативно сказывается на удобстве использования. При стилизации полос прокрутки обеспечьте достаточную контрастность цветов и размеры элементов для касания не менее 44px в ширину и высоту. См. Методы WCAG 2.0: G183: Использование коэффициента контрастности 3:1 и Понимание WCAG 2.1: Размер целевого элемента.
Примеры
Стилизация полос прокрутки с использованием -webkit-scrollbar
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: #aaa; /* or add it to the track */
}
/* Add a thumb */
.mostly-customized-scrollbar::-webkit-scrollbar-thumb {
background: #000;
}
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>
Результат
Добавление резервного варианта для стилей полосы прокрутки
Вы можете использовать правило @supports, чтобы определить, поддерживает ли браузер стандартные свойства scrollbar-color и scrollbar-width, и в противном случае использовать резервный вариант с псевдоэлементами ::-webkit-scrollbar-*. В следующем примере показано, как применять цвета к полосам прокрутки с помощью scrollbar-color, если они поддерживаются, и с псевдоэлементами ::-webkit-scrollbar-* в противном случае.
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;
}
}
Результат
В примере ниже вы можете прокрутить окаймлённый прямоугольник вертикально, чтобы увидеть эффект стилизации полосы прокрутки.
Спецификации
Не является частью стандарта.
Совместимость с браузерами
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
::-webkit-scrollbar |
2 | 79 | Нет | 15 | 4 | 18 | Нет | 14 | 3.2 | 1.0 | ≤37 |
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
::-webkit-scrollbar |
2 | 79 | Нет | 15 | 4 | 18 | Нет | 14 | 3–13 | 1.0 | ≤37 |
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
::-webkit-scrollbar |
2 | 79 | Нет | 15 | 4 | 18 | Нет | 14 | 3–13 | 1.0 | ≤37 |
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
::-webkit-scrollbar |
2 | 79 | Нет | 15 | 4 | 18 | Нет | 14 | 3–13 | 1.0 | ≤37 |
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
::-webkit-scrollbar |
2 | 79 | Нет | 15 | 4 | 18 | Нет | 14 | 3–13 | 1.0 | ≤37 |
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
::-webkit-scrollbar |
2 | 79 | Нет | 15 | 4 | 18 | Нет | 14 | 3–13 | 1.0 | ≤37 |
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
::-webkit-scrollbar |
2 | 79 | Нет | 15 | 4 | 18 | Нет | 14 | 3Из Safari 13, толькоdisplay: none работает с этим псевдоэлементом. Другие стили не имеют эффекта. |
1.0 | ≤37 |
css.selectors.-webkit-scrollbar
Таблицы BCD загружаются только в браузере
css.selectors.-webkit-scrollbar-button
Таблицы BCD загружаются только в браузере
css.selectors.-webkit-scrollbar-thumb
Таблицы BCD загружаются только в браузере
css.selectors.-webkit-scrollbar-track
Таблицы BCD загружаются только в браузере
css.selectors.-webkit-scrollbar-track-piece
Таблицы BCD загружаются только в браузере
css.selectors.-webkit-scrollbar-corner
Таблицы BCD загружаются только в браузере
css.selectors.-webkit-resizer
Таблицы BCD загружаются только в браузере
См. также
scrollbar-widthscrollbar-color- Не используйте настраиваемые полосы прокрутки (2023)
- Стиль полосы прокрутки на developer.chrome.com (2024)
- Стиль полос прокрутки на WebKit.org (2009)
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-scrollbar