欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

修改浏览器滚动条样式

程序员文章站 2022-03-05 08:09:53
...

1 前言

浏览器的滚动条样式固定,有时候跟我们项目十分不符合,这时候就需要我们自定义滚动条的样式了,目前暂时只有谷歌浏览器支持自定义滚动条。

2 通过三个伪类选择器修改滚动条样式

滚动条由三部分样式组成,分别是:

element::-webkit-scrollbar //滚动条整体样式
element::-webkit-scrollbar-track //滚动条内部滑轨
element::-webkit-scrollbar-thumb //滚动条内部滑块
复制代码

element表示需要修改滚动条的元素,例如想修改整个页面的滚动条,那element就是body元素。

3 修改页面所有元素的横向纵向滚动条样式

首先在页面中定义一个较长的元素来查看效果。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #app {
                height:3000px;
            }
        </style>
    </head>
    <body>
        <div id="app"></div>
    </body>
</html>
复制代码

此时滚动条样式:

然后定义所有元素滚动条样式。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #app {
            	height: 3000px;
            }

            *::-webkit-scrollbar {
                /*滚动条整体样式*/
                width: 8px;/*定义纵向滚动条宽度*/
                height: 8px;/*定义横向滚动条高度*/
            }

            *::-webkit-scrollbar-thumb {
                /*滚动条内部滑块*/
                border-radius: 8px;
                background-color: hsla(220, 4%, 58%, 0.3);
                transition: background-color 0.3s;
            }

            *::-webkit-scrollbar-thumb:hover {
                /*鼠标悬停滚动条内部滑块*/
                background: #bbb;
            }

            *::-webkit-scrollbar-track {
                /*滚动条内部轨道*/
                background: #ededed;
            }
        </style>
    </head>
    <body>
        <div id="app"></div>
    </body>
</html>

复制代码

此时效果:

效果图看起来不太明显,各位小伙伴自己用浏览器打开,效果会更加直观。

4 使用SCSS简写CSS样式

SCSS写多了之后总觉得CSS代码太多了,不够简洁,下面给出SCSS简化后的代码,只包含样式部分(还没有学习SCSS的小伙伴看这里)。

* {
  &::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }

  &::-webkit-scrollbar-thumb {
    border-radius: 8px;
    background-color: hsla(220, 4%, 58%, 0.3);
    transition: background-color 0.3s;

    &:hover {
      background: #bbb;
    }
  }

  &::-webkit-scrollbar-track {
    background: #ededed;
  }
}
复制代码

5 交流

如果这篇文章帮到你了,觉得不错的话来点个Star吧。 github.com/lizijie123

转载于:https://juejin.im/post/5d24984d518825453a25a8b4