简单了解一下scrollbar的样式

654 阅读1分钟

最近一个需求中,要求当内容超出边界时,使用滚动条。好家伙,我这第一反应,不就是设置一下overflow-y:scroll就行了,可到实际操作中。我发现果然我这个菜鸟的想法就是简单,一大个滚动条在页面上显示的是真难看。故也是写个博客记录一下自己对滚动条样式的学习。

一、CSS滚动条选择器

  • ::-webkit-scrollbar——整个滚动条。
  • ::-webkit-scrollbar-button——滚动条上的按钮(上下箭头)
  • ::-webkit-scrollbar-thumb——滚动条上的滚动滑块
  • ::-webkit-scrollbar-track——滚动条轨道
  • ::-webkit-scrollbar-track-piece——滚动条没有滑块的轨道部分
  • ::-webkit-scrollbar-corner——当同时有垂直滚动条和水平滚动条时交汇的部分。通常是浏览器窗口的右下角。
  • ::-webkit-resizer——出现在某些元素底角的可拖动调整大小的滑块。

注意:以上选择器仅在基于BlinkWebkit内核的浏览器上可用

二、相关示例

以下示例均基于该页面:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .test {
      width: 200px;
      height: 200px;
      padding: 0 20px;
      border: 2px solid beige;
      border-radius: 5px;
      overflow-y: scroll;
    }
  </style>
</head>
<body>
  <div class="test">
    1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />
    11<br />12<br />13<br />14<br />15<br />16<br /> 
  </div>
</body>
</html>

2.1 ::-webkit-scrollbar

对于整个滚动条我们通常会设置widthbackground-colorborder-radius三个属性

.test::-webkit-scrollbar {
  width: 10px;
  background-color: cornflowerblue;
  border-radius: 5px;
}

一旦设置了该属性,就会改变整个滚动条的样式,滑块和上下箭头的样式需要通过::-webkit-scrollbar-thumb::-webkit-scrollbar-button去设置。

image.png

2.2 ::-webkit-scrollbar-button

该选择器用于设置滚动条两端按钮的样式。

.test::-webkit-scrollbar-button {
  height: 10px;
  background-color: black;
}

image.png

2.3 webkit-scrollbar-thumb

.test::-webkit-scrollbar-thumb {
  background-color: black;
  border-radius: 5px;
}

image.png

2.4 ::-webkit-scrollbar-track

.test::-webkit-scrollbar-thumb {
  background-color: hotpink;
  border-radius: 5px;
}
.test::-webkit-scrollbar-track {
  background-color: black;
  border-radius: 5px;
}

image.png