css滚动条样式指南

css滚动条样式指南

滚动条是网页设计中经常被忽视的元素。虽然它看起来像是一个小细节,但它在网站导航中起着至关重要的作用。默认的滚动条可能看起来不合适,有损整体美观。本文将介绍如何使用 CSS 自定义滚动条。

在 Chrome、Edge 和 Safari 中设置滚动条样式

Webkit 浏览器允许使用伪元素(如:: -webkit-scrollbar::-webkit-scrollbar-button::-webkit-scrollbar-thumb::-webkit-scrollbar-track等)设置滚动条样式。其中每一个都针对滚动条的不同部分。下面使用上面的伪元素的样式化滚动条的示例:

.container {width: 400px;height: 300px;margin: 30px auto;box-shadow: 0 0 2px gray;padding: 20px;overflow: scroll; 
}.scroll {width: 1400px;height: 1300px;
}.container::-webkit-scrollbar {width: 10px;height: 10px;
}.container::-webkit-scrollbar-thumb {background: linear-gradient(to bottom right, #4d7fff 0%, #1a56ff 100%);border-radius: 5px;
}.container::-webkit-scrollbar-track {background-color: #ddd;border: 1px solid #ccc;
}.container::-webkit-scrollbar-button {background-color: #4d7fff;border-radius: 5px;
}.container::-webkit-scrollbar-button:hover {background-color: #999999;
}
<div class='container'><div class="scroll">可滚动区域</div>
</div>

请添加图片描述
在上面的代码中,我们显示了垂直和水平滚动条,但在大多数情况下,我们只显示一个。为此,我们可以将负责滚动条可见性的overflow属性修改为overflow-xoverflow-y,具体取决于我们将显示滚动条的轴。

滚动条伪类选择器

要创建更加自定义的设计,我们可以针对滚动条的特定元素,并通过向每个伪元素添加伪类。以下是一些最常见的伪类:

  • :horizontal:用于设置与垂直滚动条不同的水平滚动条样式。例如,您可以为水平滚动条设置不同的宽度或颜色
  • :vertical:用于设置垂直滚动条与水平滚动条不同的样式
  • :decrement:适用于滚动条开头的箭头按钮。它用于设置递减按钮或垂直滚动​​条的向上箭头和水平滚动条的向左箭头的样式
  • :increment:适用于滚动条末端的箭头按钮。它用于设置增量按钮或垂直滚动​​条的向下箭头和水平滚动条的向右箭头的样式
  • :start:适用于滚动条的第一个按钮和第一个轨道部分,分别位于垂直或水平滚动条的顶部或左侧
  • :end:适用于滚动条的最后一个轨道,分别位于垂直或水平滚动条的底部或右侧

下面是一个使用上面所有伪类的示例:

.scroll {width: 1400px;height: 1300px;
}.container {width: 400px;height: 300px;margin: 30px auto;box-shadow: 0 0 2px gray;padding: 20px;overflow: scroll; 
}/* Define the scrollbar style */
.container::-webkit-scrollbar {width: 15px;height: 15px;
}/* Define the thumb style */
.container::-webkit-scrollbar-thumb {background: linear-gradient(to bottom right, #4d7fff 0%, #1a56ff 100%);border-radius: 5px;
}/* Define the track style */
.container::-webkit-scrollbar-track {background-color: #ddd;border: 10px solid #ccc;
}/* Style the beginning section of the scrollbar track */
.container::-webkit-scrollbar-track-piece:vertical:start {background-color: #4d7fff;
}/* Style the end section of the scrollbar track */
.container::-webkit-scrollbar-track-piece:vertical:end {background-color: green;
}/* Define the button style */
.container::-webkit-scrollbar-button:vertical {background-color: #4d7fff;background-repeat: no-repeat;   background-size: 50%;background-position: center;
}.container::-webkit-scrollbar-button:vertical:decrement {background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' fill='%23000000' viewBox='0 0 256 256'%3E%3Cpath d='M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z'%3E%3C/path%3E%3C/svg%3E");   
}.container::-webkit-scrollbar-button:vertical:increment {background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' fill='%23000000' viewBox='0 0 256 256'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'%3E%3C/path%3E%3C/svg%3E"); 
}/* Define the button style when being hovered over */
.container::-webkit-scrollbar-button:hover {background-color: #999999;
}

请添加图片描述

在 Firefox 中设置滚动条样式

Firefox 不提供任何像 Webkit 浏览器那样的高级样式方法,只有scrollbar-widthscrollbar-color可用。

body {scrollbar-width: thin;scrollbar-color: #4d7fff #ddd;
}
``## 设计滚动条以获得更多跨浏览器支持在设置滚动条样式时,建议结合 `Webkit` 和 `W3C CSS Scrollbars` 规范以覆盖更多浏览器:```css
body {scrollbar-width: thin;scrollbar-color: #4d7fff #ddd;
}body::-webkit-scrollbar {width: 10px;height: 10px;
}body::-webkit-scrollbar-thumb {background: linear-gradient(to bottom right, #4d7fff 0%, #1a56ff 100%);border-radius: 5px;
}body::-webkit-scrollbar-track {background-color: #ddd;border: 1px solid #ccc;
}body::-webkit-scrollbar-button {background-color: #4d7fff;border-radius: 5px;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/77247.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python字符串输入输出与注解

目录 数据输入 前言 数据输出 字符串 字符串的三种定义方法 引号嵌套 字符串的拼接 字符串格式化 拼接字符串缺点 python常用的格式符号 格式化的精度控制 字符串快速格式化 快速格式化特点 对表达式进行格式化 具体案例 字符串的大小比较 字符串比较方式 变…

【数据结构和算法】排序算法

说明&#xff1a;以下排序如无特别说明&#xff0c;都是从小到大升序排序 1. 冒泡排序 核心思想&#xff1a;每个元素与其相邻元素比较&#xff0c;如果前者大于后者则交换&#xff0c;每次循环结束后会将最大值放到最后&#xff0c;像小水泡从底下冒到上面成大水泡一样&…

day52-Redis

Redis 1.Redis 1.1 RESP连接Redis 1.2 定义&#xff1a;是一个高性能的key-value数据库&#xff08;非关系型数据库&#xff09; 1.3 数据类型&#xff1a; key键的类型是字符串类型&#xff1b; 值的类型有五种&#xff1a;字符串String&#xff0c;哈希hash&#xff0…

Ubuntu安装JDK与IntelliJ IDEA

目录 前言 Ubuntu 安装 JDK 1、更新软件包列表 2、安装OpenJDK 3、验证安装 Ubuntu安装IntelliJ IDEA 1、下载 IntelliJ IDEA 2、解压缩 IntelliJ IDEA 安装包 3、移动 IntelliJ IDEA 到安装目录 4、启动 IntelliJ IDEA 前言 APT&#xff08;Advanced Package Tool&…

使用手机相机检测电脑屏幕刷新率Hz

使用手机相机检测电脑屏幕刷新率Hz 1、电脑打开https://www.testufo.com/frameskipping 2、相机专业模式&#xff1a;快门1/10、ISO自动&#xff0c;拍摄一张照片。120Hz至少要有12个亮块&#xff0c;50Hz至少有6个亮块。 更改刷新速率 1、选择 “开始>设置>系统>显示…

Linux操作系统~Linux基础知识相关题

整卷阅览&#xff1a; 想要获取试卷原版请点击以下链接下载&#xff1a; https://download.csdn.net/download/qq_53142796/88168132https://download.csdn.net/download/qq_53142796/88168132 解题过程&#xff1a; 选择题&#xff08;每小题2分&#xff0c;共30分&#xff…

心跳跟随的心形灯(STM32(HAL)+WS2812+MAX30102)

文章目录 前言介绍系统框架原项目地址本项目开发开源地址硬件PCB软件功能 详细内容硬件外壳制作WS2812级联及控制MAX30102血氧传感器0.96OLEDFreeRTOS 效果视频总结 前言 在好几年前&#xff0c;我好像就看到了焊武帝 jiripraus在纪念结婚五周年时&#xff0c;制作的一个心跳跟…

Xcode protobuf2.5添加arm64编译器补丁生成静态库

项目需求&#xff0c;protobuf源码编成静态库使用 但是&#xff0c;github上的protobuf源码没有对应arm64的编译器定义&#xff0c;编译出来的静态库使用时报错。 下面的连接是arm64编译器代码补丁包&#xff0c;把编译器代码放到src/google/protobuf/stubs/atomicops_intern…

第一课-前提-Stable Diffusion 教程

学习 SD 的前提是电脑配置! SD 参考配置: 建议选择台式机 i5 CPU, 内存16GB,N卡 RTX3060, 8G显存以上的配置(最低配) 在此基础上的配置越高越好。 比如,cpu i7 更好,显卡能有 RTX4090 更好,32显存要能有最好,嘿嘿嘿。 如何查看自己的显卡配置? Win+R 输入 “dxdiag…

变压器参数测定中空载实验和短路实验的理解

确定变压器的参数是在《电机学》和《电力系统分析》中非常重要的一个环节&#xff0c;这里用自己习惯的方式讲一下怎样理解 首先要讲下变压器的额定参数&#xff0c;这个也是个常考的知识点 额定功率&#xff0c;即视在功率&#xff0c;电压电流&#xff0c;单位是VA或者kVA额…

kubernetes基于helm部署gitlab-runner

kubernetes基于helm部署gitlab-runner 这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab-runner。 先决条件&#xff1a; 已运行的 Kubernetes 集群已运行的 gitlab 实例 项目地址&#xff1a;https://gitlab.com/gitlab-org/charts/gitlab-runner 官方文档&#xff…

三层交换实验

前言 在实际的企业应用中&#xff0c;我们会先建立不同的vlan把用户先隔开来。然后再通过三次交换机技术打通vlan直接的网络。 这样的目的如下&#xff1a; 隔离&#xff1a; 隔离是广播域&#xff0c;也就是隔离的是故障连通&#xff1a; 连通的是正常的通信 比如校园网&am…

无向图-已知根节点求高度

深搜板子题&#xff0c;无向图&#xff0c;加边加两个&#xff0c;dfs输入两个参数变量&#xff0c;一个是当前深搜节点&#xff0c;另一个是父节点&#xff08;避免重复搜索父节点&#xff09;&#xff0c;恢复现场 ///首先完成数组模拟邻接表#include<iostream> #incl…

JAVA方向的大数据包含啥内容?

文章目录 大数据是啥大数据就业方向知识体系HadoophiveHBaseSparkScala 总结 大数据是啥 你了解到的大数据是啥样子&#xff1f; 还是… 大数据(big data)&#xff0c;或称巨量资料&#xff0c;指的是所涉及的资料量规模巨大到无法透过主流软件工具&#xff0c;在合理时间…

深挖 Threads App 帖子布局,我进一步加深了对CSS网格布局的理解

当我遇到一个新产品时&#xff0c;我首先想到的是他们如何实现CSS。当我遇到Meta的Threads时也不例外。我很快就探索了移动应用程序&#xff0c;并注意到我可以在网页上预览公共帖子。 这为我提供了一个深入挖掘的机会。我发现了一些有趣的发现&#xff0c;我将在本文中讨论。 …

Redis BigKey案例

面试题&#xff1a; 阿里广告平台&#xff0c;海量数据里查询某一固定前缀的key小红书&#xff0c;你如何生产上限制keys*/flushdb/flushall等危险命令以防止误删误用&#xff1f;美团&#xff0c;MEMORY USAGE命令你用过吗&#xff1f;BigKey问题&#xff0c;多大算big&#…

webpack基础知识七:说说webpack proxy工作原理?为什么能解决跨域?

一、是什么 webpack proxy&#xff0c;即webpack提供的代理服务 基本行为就是接收客户端发送的请求后转发给其他服务器 其目的是为了便于开发者在开发模式下解决跨域问题&#xff08;浏览器安全策略限制&#xff09; 想要实现代理首先需要一个中间服务器&#xff0c;webpac…

web爬虫第五弹 - JS逆向入门(猿人学第一题)

0- 前言 爬虫是一门需要实战的学问。 而对于初学者来说&#xff0c;要想学好反爬&#xff0c;js逆向则是敲门砖。今天给大家带来一个js逆向入门实例&#xff0c;接下来我们一步一步来感受下入门的逆向是什么样的。该案例选自猿人学练习题。猿人学第一题 1- 拿到需求 进入页面…

记录--一个好用的轮子 turn.js 实现仿真翻书的效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 国际惯例&#xff0c;官网链接 官网传送门 Github地址 github上有几个demos例子&#xff0c;介绍了基础用法。 我参考官网的例子&#xff0c;写了一个demo示例 安装 turn.js 依赖 jquery 库&#xff0…

MySQL — 存储引擎

文章目录 存储引擎存储引擎类型InnoDBMyISAMMEMORY 存储引擎是数据库的核心&#xff0c;对于mysql来说&#xff0c;存储引擎是以插件的形式运行的。虽然mysql支持种类繁多的存储引擎&#xff0c;但是常用的就那么几种。这篇文章主要是对其进行简单的介绍。 存储引擎 MySQL可插…