如何创建:自定义滚动条

学习如何使用 CSS 创建自定义滚动条。

自定义滚动条

注意:Firefox 或 Edge 79 之前的版本不支持自定义滚动条。

如何创建自定义滚动条

Chrome、Edge、Safari 和 Opera 支持非标准的 ::-webkit-scrollbar 伪元素,它允许我们修改浏览器滚动条的外观。

下例创建了一个宽度为 10px 的滚动条,该滚动条具有灰色轨道/条色和深灰色(#888)滑块:

/* 宽度 */
::-webkit-scrollbar {
  width: 10px;
}

/* 轨道 */
::-webkit-scrollbar-track {
  background: #f1f1f1;
}

/* 滑块 */
::-webkit-scrollbar-thumb {
  background: #888;
}

/* 鼠标悬停时的滑块 */
::-webkit-scrollbar-thumb:hover {
  background: #555;
}

亲自试一试

此例创建了一个带有阴影效果的滚动条:

实例

/* 宽度 */
::-webkit-scrollbar {
  width: 20px;
}

/* 轨道 */
::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px grey;
  border-radius: 10px;
}

/* 滑块 */
::-webkit-scrollbar-thumb {
  background: red;
  border-radius: 10px;
}

亲自试一试

滚动条选择器

对于 webkit 浏览器,您可以使用以下伪元素来自定义浏览器的滚动条:

::-webkit-scrollbar 滚动条本身。
::-webkit-scrollbar-button 滚动条上的按钮(向上和向下的箭头)。
::-webkit-scrollbar-thumb 可拖动的滚动滑块。
::-webkit-scrollbar-track 滚动条的轨道(进度条)。
::-webkit-scrollbar-track-piece 轨道(进度条)中未被滑块覆盖的部分。
::-webkit-scrollbar-corner 滚动条的底角,水平和垂直滚动条在此交汇。
::-webkit-resizer 出现在某些元素底角的可拖动调整大小手柄。