浏览器自定义滚动条样式

2023-05-16

当一段文本过长,使用overflow:auto属性后,这段文本所在区域将会出现滚动条。有时候,我们需要自定义浏览器的滚动条样式,可以使用css3的scrollbar-thumb属性来实现。

首先看一下这个属性的兼容性。
在这里插入图片描述

可见这个属性在pc端支持的并不是特别好,仅支持webkit浏览器,属性需要带有-webkit-前缀。

所以,在pc端请在Chrome或者Safari浏览器中查看效果。

再来看一下滚动条选择器的各个属性的用处。

::-webkit-scrollbar — 整个滚动条.
::-webkit-scrollbar-button — 滚动条上的按钮 (上下箭头).
::-webkit-scrollbar-thumb — 滚动条上的滚动滑块.

::-webkit-scrollbar-track — 滚动条轨道.

::-webkit-scrollbar-track-piece — 滚动条没有滑块的轨道部分.

::-webkit-scrollbar-corner — 当同时有垂直滚动条和水平滚动条时交汇的部分.

::-webkit-resizer — 某些元素的corner部分的部分样式(例:textarea的可拖动按钮).

上述各个属性的说明摘录自MDN(https://developer.mozilla.org/zh-CN/docs/Web/CSS/::-webkit-scrollbar)

根据以上介绍,可以写一个自定义的滚动条效果。

/* 整个滚动条的样式 */
::-webkit-scrollbar {
    width: 16px;
    height: 16px;
    border: 2px solid #f2f2f2;
    background-color: #F2F2F2;
}

/* 滚动条的轨道两端按钮,允许通过点击微调小方块的位置 */
::-webkit-scrollbar-button {
    display: none;
}

/* 滚动条的轨道样式 */
::-webkit-scrollbar-track {
    background-color: #F2F2F2;
}

/* 内层轨道样式 */
::-webkit-scrollbar-track-piece {
    background-color: #f2f2f2;
}

/* 滚动条里面的小方块,能上下移动 */
::-webkit-scrollbar-thumb {
    border-radius: 6px;
    box-shadow: inset 0 0 1px 0 #f2f2f2;
    border: 3px solid #f2f2f2;
    background-color: #D9D9D9;
}

/* 滚动条滑块hover时样式 */
::-webkit-scrollbar-thumb:vertical:hover,
::-webkit-scrollbar-thumb:horizontal:hover {
    background-color: #c0c0c0;
}

代码运行效果如下:

还有一些伪类也可以使用于滚动条。

:horizontal  
//horizontal伪类适用于任何水平方向的滚动条  

:vertical  
//vertical伪类适用于任何垂直方向的滚动条  

:decrement  
//decrement递减伪类适用于按钮和轨道碎片。它指示按钮或轨道片段在使用时是否将递减视图的位置(例如可以使区域向上或者向右移动的区域和按钮)。

:increment  
//increment增量伪类应用于按钮和轨道碎片。它指示按钮或轨道片段在使用时是否将增加视图的位置(例如可以使区域向下或者向左移动的区域和按钮)。

:start  
//start伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的前面  

:end  
//end伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的后面  

:double-button  
//double-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。  

:single-button  
//single-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。  

:no-button  
no-button伪类表示轨道结束的位置没有按钮。  

:corner-present  
//corner-present伪类表示滚动条的角落是否存在。  

:window-inactive  
//适用于所有滚动条,表示包含滚动条的区域,焦点不在该窗口的时候。  

::-webkit-scrollbar-track-piece:start {  
/*滚动条上半边或左半边*/  
}  

::-webkit-scrollbar-thumb:window-inactive {  
/*当焦点不在当前区域滑块的状态*/  
}  

::-webkit-scrollbar-button:horizontal:decrement:hover {  
/*当鼠标在水平滚动条下面的按钮上的状态*/  
}  

另外,:enabled,:disabled,:hover,:active伪类也可以用于滚动条。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浏览器自定义滚动条样式 的相关文章

  • 基于I2C协议利用STM32进行温湿度传感器的数据采集

    目录 一 I2C总线通信协议的介绍1 I2C简介2 I2C总线时序图3 五种速率4 四种信号5 I2C的优缺点6 软件IIC和硬件IIC 二 创建工程1 实验目的2 工具的选择3 相关代码分析 三 线路的连接四 结果实现五 总结参考文献 一
  • 海康嵌入式软件面试经验(已拿offer)

    本科双非 xff0c 计算机类专业学渣 xff0c 0实习经历 xff0c 复习考研的时候学了一遍408 xff0c 强化阶段学的心态崩了就边复习边投简历 xff0c 之前投了好几次体面厂的测试岗都没进面试 xff0c 投开发岗反而进了 7
  • 前端浏览器渲染原理及优化

    文章目录 一 浏览器组成1 对浏览器内核的理解2 浏览器的主要组成部分 二 浏览器渲染原理1 浏览器的渲染过程步骤一 xff1a 步骤二 xff1a 步骤三 xff1a 步骤四 xff1a 步骤五 xff1a 2 相关概念 重排 更新元素的
  • Docker+github actions部署前端项目

    Docker 43 github actions部署前端项目 文章目录 Docker 43 github actions部署前端项目前言1 Docker相关文件配置2 创建自己的dokcer hub仓库3 yml文件配置 前言 在进行本篇实
  • pytorch可视化之:可视化网络结构+CNN可视化+TensorBorad使用

    Pytorch学习第五部分 xff1a pytorch可视化 Let 39 s go 一 可视化网络结构1 1 Resnet18结构1 2 使用torchinfo可视化网络结构1 2 1 torchinfo安装1 2 2 torchinfo
  • spring中用到的设计模式及应用场景

    spring中用到的设计模式及应用场景 1 工厂模式 xff1a 在Beanfactory和applicationContext创建中都用到了 2 单例模式 xff1a Bean默认就是单例模式 单例模式只允许创建一个对象 xff0c 获取
  • python架构之Django学习------流程总结

    python架构之Django学习 一 二 三 开发流程 xff1a step1 创建虚拟环境 mkvirtrualenv step2 安装django pip install django step3 创建项目 python manage
  • PDU 发送短信3

    T指令收发短信主要有两种模式 xff1a Text模式和PDU xff08 Protocol Data Unit xff0c 协议数据单元 xff09 模式 使用Text模式收发短信代码简单 xff0c 很容易实现 xff0c 最大缺点不支
  • Linux驱动---休眠与唤醒

    Linux 休眠与唤醒 文章目录 Linux 休眠与唤醒前言一 休眠 唤醒 机制二 重要的函数及其数据结构wait内核函数唤醒函数 三 驱动编程步骤附录 xff08 源码 xff09 前言 当应用程序必须等待某个时间发生 xff0c 比如必
  • 序列化Writable接口

    基本序列化类型往往不能满足所有需求 xff0c 比如在Hadoop框架内部传递一个自定义bean对象 xff0c 那么该对象就需要实现Writable序列化接口 实现Writable序列化步骤如下 xff08 1 xff09 必须实现Wri
  • MapReduce读取数据

    1 InputFormat 运行MapReduce程序时 xff0c 输入的文件格式包括 基于行的日志文件 二进制格式文件 数据库表等 那么 xff0c 针对不同的数据类型 xff0c MapReduce是如何读取这些数据的呢 InputF
  • Git的安装与配置,VScode如何连接Gitee?

    什么是gitee 要学gitee 你首先得知道gitee是什么 而且你得知道它的好处 首先它是国内最大的代码托管平台 国外GitHub的弟弟 然后 它能帮你 管理 昨天和今天 改动的文件 xff0c 还给你做 备份 xff1b 它能管理让你
  • 下载并使用Maven创建运行项目(配置Maven、tomcat、含idea实例)【精细教程】

    前言 xff08 重点 xff01 xff01 xff09 xff1a 很多人在安装好maven后 xff0c 遇到idea与maven版本不匹配的问题 xff0c 首先要根据自己的idea版本来选择maven版本 xff01 IDEA 2
  • 将本地项目commit到gitee上

    在新建的项目路径中 xff0c shift 43 右键 xff0c 打开powershell窗口 查看状态 xff1a git status 再执行 xff1a git add git commit m 34 add files 34 再次
  • docker搭建私有仓库

    一 宿主机安装 1 extras源中下载安装distributon包 编写源 extras name 61 extra baseurl 61 https mirrors aliyun com centos vault 7 9 2009 ex
  • HBase-API

    目录 引入的依赖 创建连接 命名空间 表 引入的依赖 lt dependencies gt lt dependency gt lt groupId gt org apache hbase lt groupId gt lt artifactI
  • 【嵌入式算法】学习笔记(一):数字滤波算法

    文章目录 摘要一 数字滤波简介二 常用数字滤波算法1 限幅滤波2 中值滤波3 算术平均滤波4 去极值平均滤波5 滑动平均滤波6 滑动加权滤波7 一阶滞后滤波 三 数字滤波小结 摘要 最近在做直流电机的毕设中 xff0c 由于需要采集转速 x
  • python架构之Django学习------mysql使用

    学习环境 xff1a ubuntu16 0 4 一 安装python包 pip install mysql python 二 使用mysql mysql uroot p show databases drop database test1
  • C语言经典面试题10道(五)

    41 什么是预编译 xff0c 何时需要预编译 xff1f 答案 xff1a xff11 总是使用不经常改动的大型代码体 xff12 程序由多个模块组成 xff0c 所有模块都使用一组标准的包含文件和相同的编译选项 在这种情况下 xff0c

随机推荐

  • ROS环境下的串口通讯

    目录 1 前言 2 内容 2 1 准备工作 2 1 1 连接外部USB设备 2 1 2 串口调试工具的下载 2 1 3 serial库的安装 2 2 代码部分 2 2 1 编写发布节点 2 2 2 编写发布节点 2 2 3 编辑checkl
  • 【线性控制理论】状态观测器—开环形式的状态观测器

    文章目录 前言一 开环形式的状态观测器 前言 在线性系统的各种综合问题中状态反馈展现了其优越性 xff0c 不管是系统的极点配置 xff0c 镇定以及解耦控制 xff0c 都有赖于引入适当的状态反馈才能实现 但是在状态反馈时 xff0c 我
  • 【状态观测器】全维状态观测器

    文章目录 前言一 全维状态观测器 前言 本文主要提到的是闭环形式状态观测器中的全维状态观测器 xff0c 建议有时间可以阅读上一篇开环形式的状态观测器 篇幅不长 以理解状态观测器 一 全维状态观测器 全维状态观测器是闭环状态观测器的一种 还
  • Linux 安装zsh和zsh的配置

    1 在安装之前 xff0c 需要了解一些自己的shell是什么 命令 xff1a echo SHELL 这里是bash shell环境 2 安装zsh 输入命令 xff1a sudo pacman S zsh 直接安装zsh 3 安装zsh
  • Linux 对整个系统备份和还原

    对系统进行备份非常的重要 xff0c 如果有一天 xff0c 系统崩溃了 xff0c 可以重装系统 xff0c 但是重装系统后又需要进行相关的配置 xff0c 这会显得非常的麻烦 xff0c 又会浪费很多的时间 备份的方式 xff1a 分两
  • 计算机网络地址划分及子网掩码计算

    一 点分十进制记法 8 位的二进制数 转为 十进制数 注意 xff1a 1 与有分类的ip地址的区别 这里的 n 不是固定的数 是可以在0 32位之间任意的 xff0c 所以 CIDR 斜线记法 xff1a IP地址后面加上 斜线后面的是网
  • axios简介

    Axios 对原生的 AJAX 进行封装 xff0c 简化书写 get请求如下 xff1a xff08 get请求地址栏传参 xff09 axios method 34 get 34 url 34 http localhost 8080 a
  • 安装OpenCV、cython、numpy和h5py

    安装OpenCV xff1a 一 系统烧录 Raspberry Pi Imager 烧录步骤 xff1a 软件下载地址 xff1a Raspberry Pi OS Raspberry Pi xff08 建议提前准备一张容量在8G以上的SD卡
  • 优秀!他历时三个月终于拿到阿里offer,在这里分享一下阿里的社招面经!

    前言 这也是我第二次进入三面了 xff0c 也不知道这次能不能进呢 xff1f 球球阿里爸爸了 xff0c 许愿一个 hr 面可以吗 xff1f wwwww 本人双非本科大三 xff0c 基础不强 xff0c 有一个简单的秒杀项目 xff0
  • wireshark-----过滤使用方法

    1 ip过滤 ip addr 61 61 10 239 4 160
  • MySQL数据库安装步骤及报错1251解决方法

    MySQL数据库安装 MySQL是一种关系数据库管理系统 xff0c 所使用的 SQL 语言是用于访问数据库的最常用的标准化语言 xff0c 其特点为体积小 速度快 总体拥有成本低 xff0c 尤其是开放源码这一特点 xff0c 在 Web
  • Docker 安装问题

    Docker 安装问题 出现了Failed to start docker service Unit docker service not found 这个图在图上的链接处拿的 xff0c 我自己之前出现的错误图找不到了 这个错误 xff0
  • vscode配置ros开发环境

    前言 xff1a 其实有两种方法来配置vscode里的ros环境 xff0c 第一种就是先通过终端创建工作空间 xff0c 并编译后然后选择vscode打开catkin ws xff0c 然后在vscode中配置ros的编译环境 xff1b
  • 判断IP地址是否在同一个网段

    一 什么是子网掩码 xff1f 在了解ip地址的网段之前 xff0c 我们先来了解子网掩码 xff0c 很多对网络了解不深的朋友都对子网掩码有些迷惑 xff0c 不了解它是用来干什么的 xff1f 子网掩码不能单独存在 xff0c 它必须结
  • 理解MySQL七种连接

    如上图是MySQL的七种连接 由于MySQ对于外连接支持SQL99语法 xff0c 我们就以JOIN ON举例 表t dept 表t emp 1 内连接 xff1a A表 xff0c B表交叉的部分 SELECT FROM t dept d
  • IP地址的分类和规划

    每日分享 xff1a 你拼命奔跑的样子 xff0c 终究会在风中留下痕迹 xff01 文章目录 一 IP地址的格式二 私有IP地址三 IP地址分类 xff1a 四 子网掩码五 IP地址的规划 一 IP地址的格式 1 主机唯一的标识 xff0
  • QT5+TCP/IP多线程传输图片

    先上实现结果 一 概述 QT中设计TCP IP通信主要使用QTCPServer和QTCPSocket两个类 xff0c 功能分为服务器端和客户端 xff0c 服务器端负责接收图片 xff0c 客户端发送图片 多线程设计主要有两种方法 xff
  • ubuntu建立新用户

    1 新建testuser用户 sudo adduser testuser 2 设置root密码 sudo passwd root 3 更改sudoers编辑权限 sudo chmod u 43 w etc sudoers 4 给testus
  • Error: Flash Download failed - “Cortex-M3“错误解决办法

    在使用STM32F103的时候 xff0c 使用DAP仿真器下载程序 xff0c 出现下载不了的情况 xff0c 错误信息如下 xff1a 输出框里打印信息如下 xff1a No Algorithm found for 08000000H
  • 浏览器自定义滚动条样式

    当一段文本过长 xff0c 使用overflow auto属性后 xff0c 这段文本所在区域将会出现滚动条 有时候 xff0c 我们需要自定义浏览器的滚动条样式 xff0c 可以使用css3的scrollbar thumb属性来实现 首先