::-webkit-scrollbar
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
::-webkit-scrollbar CSS 伪元素影响元素在具有可滚动溢出时的滚动条样式。
对于不支持此伪元素及相关 ::-webkit-scrollbar-* 伪元素的浏览器,可以使用标准的 scrollbar-color 和 scrollbar-width 属性作为替代方案(参阅浏览器兼容性)。
注意:如果 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: #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>
结果
为滚动条样式添加备用方案
你可以使用 @supports at-rule 来检测浏览器是否支持标准的 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;
}
}
结果
在下面的示例中,你可以垂直滚动带边框的盒子以查看滚动条样式化的效果。
规范
不属于任何标准。
浏览器兼容性
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
加载中…
另见
scrollbar-widthscrollbar-color- 不要使用自定义滚动条 (2023)
- 开发者 Chrome 上的滚动条样式 (2024)
- WebKit.org 上的滚动条样式 (2009)