likes
comments
collection
share

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

作者站长头像
站长
· 阅读数 44

浏览器默认的滚动条是这样的:

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

这篇文章将一步一步介绍如何给滚动条一个漂亮的样式。最终效果如下:

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

滚动条伪元素

1. ::-webkit-scrollbar

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

::-webkit-scrollbar是整个scrollbar的背景,通常会被其它元素盖住,这个元素通常被用来定义宽度(纵向滚动条)和高度(横向滚动条)。

*::-webkit-scrollbar {
  width: 10px;
}

2. ::-webkit-scrollbar-button

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

::-webkit-scrollbar-button代表了方向按钮,对于纵向的滚动条,向上的按钮是::-webkit-scrollbar-button:vertical:decrement,向下的按钮是::-webkit-scrollbar-button:vertical:increment

由于我的项目是PC web页面,不需要这个按钮,于是这里的CSS如下:

*::-webkit-scrollbar-button {
  width: 0;
  height: 0;
}

3. ::-webkit-scrollbar-corner

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

::-webkit-scrollbar-corner是纵向和横向滚动条重合的拐角处,这里我把颜色设为透明:

*::-webkit-scrollbar-corner {
  background-color: transparent;
}

4. ::-webkit-scrollbar-thumb

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

::-webkit-scrollbar-thumb是这个可以被拖拽的滑块,这里我也调整一下宽度,border和颜色:

*::-webkit-scrollbar-thumb {
  min-height: 12px;
  border: 4px solid transparent;
  background-clip: content-box;
  border-radius: 7px;
  background-color: #c8d5e1;
}

另外我鼠标hover在这个滑块上,颜色会稍微加深,当鼠标拖拽时,颜色会进一步加深:

*::-webkit-scrollbar-thumb:hover {
  background-color: #a8bbcf;
}
*::-webkit-scrollbar-thumb:active {
  background-color: #87a2bd;
}

5. ::-webkit-scrollbar-track

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

::-webkit-scrollbar-track::-webkit-scrollbar-track-piece都代表了这个滚动条下面的滚动槽,::-webkit-scrollbar-track-piece是覆盖在::-webkit-scrollbar-track上方的,这里我都设置为透明色。

*::-webkit-scrollbar-track {
  background-color: transparent;
}
*::-webkit-scrollbar-track-piece {
  background-color: transparent;
}

总结

整个样式代码如下:

*::-webkit-scrollbar {
  width: 14px;
  height: 14px;
}
*::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}
*::-webkit-scrollbar-corner {
  background-color: transparent;
}
*::-webkit-scrollbar-thumb {
  min-height: 12px;
  border: 4px solid transparent;
  background-clip: content-box;
  border-radius: 7px;
  background-color: #c8d5e1;
}
*::-webkit-scrollbar-thumb:hover {
  background-color: #a8bbcf;
}
*::-webkit-scrollbar-thumb:active {
  background-color: #87a2bd;
}
*::-webkit-scrollbar-track {
  background-color: transparent;
}
*::-webkit-scrollbar-track-piece {
  background-color: transparent;
}

效果如下:

如何用CSS自定义滚动条样式?滚动条伪元素包括哪些,分别代表哪个部分,都有什么作用?这篇文章将给出解释,并一步一步介绍如

转载自:https://juejin.cn/post/7393173051154857995
评论
请登录