手把手教你使用CSS自定义好看的滚动条样式!


本文摘自PHP中文网,作者青灯夜游,侵删。

自定义滚动条现在越来越流行,很值得研究一翻。下面本篇文章就来带大家了解一下滚动条的组成部分,介绍一下如何使用CSS自定义滚动条样式。

(学习视频分享:css视频教程)

为什么需要自定义滚动?浏览器的默认的滚动条让UI在多个操作系统中看起来不一致,使用定义滚动我们可以统一风格。

我一直对如何在CSS中定制滚动条很感兴趣,但一直没有机会这样做。今天,我就记录一下自己的学习过程。

0-1.png

简介

首先需要介绍一下滚动条的组成部分。滚动条包含 trackthumb,如下图所示:

0-2.png

track是滚动条的基础,其中的 thumb是用户拖动支页面或章节内的滚动。

还有一件重要的事情要记住,滚动条可以水平或垂直地工作,这取决于设计。另外,在一个多语言网站上工作时,这一点也会发生变化,该网站在从左到右(LTR)和从右到左(RTL)两个方向上工作。

0-3.png

自定义滚动条设计

拥有一个自定义的滚动条曾经是webkit的专利,所以Firefox和IE被排除在游戏之外。我们有一种新的语法,只在Firefox中使用,当它被完全支持时,将使我们的工作更容易。我们先看一下旧的Webkit语法,然后再介绍新的语法。

1、旧的语法

滚动条的宽度

首先,我们需要定义滚动条的大小。这可以是垂直滚动条的宽度,也可以是水平滚动条的高度

1

2

3

.section::-webkit-scrollbar {

    width: 10px;

}

有了这一设置,我们就可以设置滚动条本身的样式。

滚动条 track

这代表了滚动条的基础。我们可以通过添加backgroundshadowsborder-radiusborder来对它进行造型。

1

2

3

.section::-webkit-scrollbar-track {

    background-color: darkgrey;

}

滚动条 thumb

准备好了滚动条的基础后,我们就需要对滚动条的thumb进行样式设计。这很重要,因为用户可能会拖动这个thumb与滚动条进行交互。

1

2

3

.section::-webkit-scrollbar-thumb {

    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);

}

至此,我们已经介绍了CSS中定制滚动条的老方法。让我们探索一下新的语法。

2、新语法

Scrollbar Width

正如它所说的,这定义了滚动条的宽度,有两个值autothin。不好的地方就是,我们不能像webkit的语法那样定义一个具体的数字。

1

2

3

.section {

  scrollbar-width: thin;

}

Scrollbar Color

有了这个属性,我们可以为滚动条 trackthumb定义成对值的颜色。

1

2

3

4

.section {

    scrollbar-color: #6969dd #e0e0e0;

    scrollbar-width: thin;

}

尽管这个新语法很简单,但它是有限制的。我们只能添加颜色。我们不能添加shadows`、gradientsrounded,或任何类似的东西,我们被允许定制的只是颜色。

指定自定义滚动条的范围

要知道的一个重要问题是,在哪里定制滚动条。你希望样式是通用的,对网站上的所有滚动条都有效吗?还是你只想让它用于特定的部分?

使用旧的语法,我们可以编写选择器,而不必将它们附加到元素上,它们将应用于所有可滚动的元素。

1

2

3

4

5

6

7

8

9

10

11

::-webkit-scrollbar {

    width: 10px;

}

 

::-webkit-scrollbar-track {

    background-color: darkgrey;

}

 

::-webkit-scrollbar-thumb {

    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);

}

如果你想只适用于一个特定的部分,你需要在选择器之前附加元素。

1

2

3

4

5

6

7

8

9

10

11

.section::-webkit-scrollbar {

    width: 10px;

}

 

.section::-webkit-scrollbar-track {

    background-color: darkgrey;

}

 

.section::-webkit-scrollbar-thumb {

    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);

}

对于新的语法,它几乎是一样的。我注意到的是,如果你想要一个通用的样式,它应该被应用于<html>元素,而不是<body>

1

2

3

4

html {

    scrollbar-color: #6969dd #e0e0e0;

    scrollbar-width: thin;

}

我尝试为<body>添加上面的内容,但它没有像预期的那样工作。

现在我们知道了新旧语法的工作原理,接着,我们开始定制一些滚动条设计。

自定义滚动条设计

例1

1.png

阅读剩余部分

相关阅读 >>

css中哪些属性可以继承

css div不随滚动条移动的实现方法

jquery如何使用滚动条监听事件

css :first-child的作用是什么?

html5怎么去除超链接的下划线

css columns属性怎么用

利用css动画属性rotate来实现镜像翻转

css如何使文字方向转90度

css选择器怎么选取第几个元素

css代表什么

更多相关阅读请进入《css》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...