您可以使用标准 CSS 属性 scrollbar-color 和 scrollbar-width 自定义滚动条的外观。
scrollbar-color:接受两个<color>值。第一个应用于滑块(移动部分),第二个应用于滑轨(固定背景)。scrollbar-width:接受auto(默认)、thin(较细的变体)或none(完全隐藏滚动条,但仍可滚动)。
应用 scrollbar-color 和 scrollbar-width
强制性:在可滚动容器上使用 scrollbar-color 和 scrollbar-width。
使用 scrollbar-color 时,请使用 CSS 变量将滑块和滑轨颜色分开,以提高可读性和可维护性(尤其是在使用后备方案时)。
.scroller {
--scrollbar-thumb: var(--color-neutral-70);
--scrollbar-track: var(--color-neutral-90);
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
后备策略
scrollbar-color 的后备方案和浏览器支持
此功能属于渐进增强,并不总是需要后备。
如果样式很重要,并且用户的基准目标是“基准广泛可用”或更早版本,则您应添加非标准 ::-webkit-scrollbar 伪元素作为后备。
将旧版后备样式封装在 @supports not (scrollbar-color: auto) 代码块中,以防止在原生支持标准属性和旧版 WebKit 选择器的浏览器中发生冲突。
如果您使用自定义属性来定义颜色,这些属性会自动级联到旧版 WebKit 选择器。您无需复制这些内容。
/* Legacy fallback for WebKit/Blink browsers */
@supports not (scrollbar-color: auto) {
.scroller::-webkit-scrollbar {
/* Must define base size in WebKit for custom colors to be visual */
width: 12px;
height: 12px;
}
.scroller::-webkit-scrollbar-thumb {
background: var(--scrollbar-thumb);
}
.scroller::-webkit-scrollbar-track {
background: var(--scrollbar-track);
}
}