重写滚动条

ops/2024/11/9 2:17:58/

重写滚动条的样式通常需要使用CSS来自定义其外观。现代浏览器(如Chrome、Firefox、Edge等)支持通过CSS的伪元素和特定的CSS属性来自定义滚动条。以下是一些示例代码,展示了如何重写滚动条的样式。

针对WebKit内核浏览器(如Chrome和Safari)

/* 滚动条整体宽度或高度 */
::-webkit-scrollbar {width: 12px; /* 垂直滚动条的宽度 */height: 12px; /* 水平滚动条的高度 */
}/* 滚动条轨道 */
::-webkit-scrollbar-track {background: #f1f1f1; /* 轨道颜色 */
}/* 滚动条滑块 */
::-webkit-scrollbar-thumb {background: #888; /* 滑块颜色 */border-radius: 6px; /* 滑块圆角 */
}/* 滑块在悬停时的颜色 */
::-webkit-scrollbar-thumb:hover {background: #555;
}/* 滚动条两端的按钮 */
::-webkit-scrollbar-button {background: #ddd; /* 按钮颜色 */height: 3px; /* 按钮高度 */
}/* 滚动条滑块两端的角落 */
::-webkit-scrollbar-corner {background: #f1f1f1; /* 角落颜色 */
}


针对Firefox(自版本64起支持)

Firefox使用不同的CSS属性来定制滚动条,但支持的属性较少。以下是一些可以自定义的样式:

/* 滚动条滑块颜色 */
scrollbar-color: #888 #f1f1f1; /* 滑块颜色 轨道颜色 *//* 滚动条宽度(仅对水平滚动条有效),高度同理 */
scrollbar-width: thin; /* 可选值:auto, thin, none */


完整示例

以下是一个完整的HTML和CSS示例,展示了如何自定义滚动条的样式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Custom Scrollbar</title><style>body {font-family: Arial, sans-serif;margin: 0;padding: 0;overflow-x: hidden;}.content {width: 100%;height: 200vh; /* 使内容足够长以显示滚动条 */padding: 20px;box-sizing: border-box;}/* 针对WebKit内核浏览器 */::-webkit-scrollbar {width: 12px;height: 12px;}::-webkit-scrollbar-track {background: #f1f1f1;}::-webkit-scrollbar-thumb {background: #888;border-radius: 6px;}::-webkit-scrollbar-thumb:hover {background: #555;}::-webkit-scrollbar-button {background: #ddd;height: 3px;}::-webkit-scrollbar-corner {background: #f1f1f1;}/* 针对Firefox */body {scrollbar-color: #888 #f1f1f1;scrollbar-width: thin;}</style>
</head>
<body><div class="content"><h1>Scroll Down to See Custom Scrollbar</h1><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam quisque arcu diam veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magna aliqua. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p><!-- 更多内容 --></div>
</body>
</html>
这个示例展示了如何为WebKit内核的浏览器(如Chrome和Safari)和Firefox浏览器分别定制滚动条的样式。通过调整CSS属性,你可以根据自己的需求来进一步定制滚动条的外观。

http://www.ppmy.cn/ops/132093.html

相关文章

内网部署web项目,外网访问不了?只有局域网能访问!怎样解决?

相关技术 要实现“内网部署&#xff0c;外网访问”&#xff0c;可以使用内网穿透、VPN技术、DMZ主机、端口映射等方法。以下是对这些方法的详细解释&#xff1a; 一、内网穿透 内网穿透是一种技术&#xff0c;它通过将内网设备映射到公网上的方式&#xff0c;实现外网访问内…

《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列

《TCP/IP网络编程》学习笔记 | Chapter 3&#xff1a;地址族与数据序列 《TCP/IP网络编程》学习笔记 | Chapter 3&#xff1a;地址族与数据序列分配给套接字的IP地址和端口号网络地址网络地址分类和主机地址边界用于区分套接字的端口号数据传输过程示例 地址信息的表示表示IPv4…

GitHub每日最火火火项目(11.8)

项目名称&#xff1a;zmh-program/chatnio 项目介绍&#xff1a;“zmh-program/chatnio”是下一代 AI 一站式国际化解方案&#xff0c;为 B 端和 C 端用户提供全面的服务。它支持众多知名的 AI 模型&#xff0c;如 OpenAI、Midjourney、Claude、讯飞星火、Stable Diffusion、DA…

react组件02

setState setState用法 可以传入一个对象&#xff0c;也可以传入一个函数&#xff0c;&#xff0c; setState是异步的&#xff0c;会将对象加入一个队列&#xff0c;在一定的时间之后进行统一渲染&#xff0c;&#xff0c;&#xff0c;所以多次调用setState去累加某一个值&am…

MySQL 9从入门到性能优化-加密函数

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例

1. HttpRequest文件上传简介 在本系列的第21篇文章《鸿蒙网络编程系列21-使用HttpRequest上传任意文件到服务端示例》中&#xff0c;使用ArkTS语言基于API 9环境演示了文件上传功能的实现&#xff0c;本节将使用仓颉语言基于API 12环境实现类似的功能。 2. HttpRequest文件上…

考研人数减少,为什么考同等学力申硕的却更多?

考研人数逐渐退潮&#xff0c;报考人数逐年递减&#xff0c;但同等学力申硕却逆势上扬&#xff0c;火得不行&#xff01;新学位法加持&#xff0c;学位含金量飙升&#xff0c;学信网认证硬气十足。考研落榜大军转战申硕战场&#xff0c;门槛低、考试易、学习灵活成最大卖点&…

Springboot整合AOP和redis

aop pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 开启自动代理 注意&#xff1a;在完成了引入AOP依赖包后&#xff0c;一般来说并不需要去做其他…