伪元素选择器,实现滚动条的极限拉扯【趣学前端】

举报
叶一一 发表于 2023/02/20 22:43:58 2023/02/20
【摘要】 前言最近翻笔记,看到之前移动端对滚动条问题的处理记录,所以把滚动条相关的知识点重新翻看了一遍。其中滚动条伪元素相关的内容,挺有趣的,感觉组合起来,没准能玩出不错的效果。在开始freestyle,先强调一下,接下来要介绍的知识点,有些是非标准,有些是实验中的功能,所以功能仅供参考,生产环境慎重使用。滚动条滚动条的伪元素选择器还挺多的,所以应该能实现很多好玩的效果。知识点先来看一下滚动条相关的伪...

前言

最近翻笔记,看到之前移动端对滚动条问题的处理记录,所以把滚动条相关的知识点重新翻看了一遍。其中滚动条伪元素相关的内容,挺有趣的,感觉组合起来,没准能玩出不错的效果。

在开始freestyle,先强调一下,接下来要介绍的知识点,有些是非标准,有些是实验中的功能,所以功能仅供参考,生产环境慎重使用。

滚动条

滚动条的伪元素选择器还挺多的,所以应该能实现很多好玩的效果。

知识点

先来看一下滚动条相关的伪元素选择器都有哪些,都是控制什么功能的。

以下知识点来自MDN

伪元素

含义

规范

::-webkit-scrollbar

会影响设置了 overflow:scroll; 的元素的滚动条样式。

非标准: 该特性是非标准的,请尽量不要在生产环境中使用它!

::-webkit-scrollbar-button

滚动条上的按钮(上下箭头)。

同上

::-webkit-scrollbar-thumb

滚动条上的滚动滑块。

同上

::-webkit-scrollbar-track

滚动条轨道。

同上

::-webkit-scrollbar-track-piece

滚动条没有滑块的轨道部分。

同上

::-webkit-scrollbar-corner

当同时有垂直滚动条和水平滚动条时交汇的部分。通常是浏览器窗口的右下角。

同上

::-webkit-resizer

出现在某些元素底角的可拖动调整大小的滑块。

同上

组合效果

可以通过滚动条的伪元素选择器,实现不同的展示效果。但是通过分析不难发现,这些伪元素选择器是可以组合起来使用的。

我试验了几个组合效果,如下:

类型

效果展示

实现方案

无滚动条

无滚动条并不是简单粗暴。一般移动端的页面都会隐藏滚动条,美观且避免影响用户操作。

圆角滚动条

通过设置::-webkit-scrollbar的值,可以修改滚动条的样式

异色滚动块

通过设置::-webkit-scrollbar-thumb的值,可以设置滚动条上的滚动滑块的样式,可以将滚动滑块的颜色和滚动条轨道不一致,进而形成明显区分的效果。

补全滚动条交汇

当同时有垂直滚动条和水平滚动条时交汇的部分。当父容器的背景颜色和滚动条轨道的背景颜色不一致时,会出现一块空缺,这个时候通过设置::-webkit-scrollbar-corner的值,可以调整空缺展示样式

条纹滚动条

设置滚动滑块的背景样式,可以让滚动条呈现出不同效果。比如右图就是一个带三色条纹的滚动条。

总结

滚动条的伪元素选择器目前还是非标准特性,正式生产不建议使用。

但是组合实现各种展示效果,还挺有趣的,今天也特别有收获的一天。

CSS样式真有趣,光写样式我感觉自己能写一天。

偶尔翻出来珍藏的技术书,读几章,有了新想法的感觉真不赖。

作者:非职业「传道授业解惑」的开发者叶一一
简介:「趣学前端」、「CSS畅想」系列作者,华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。