css3更改默认滚动条样式-webkit-scrollbar

浏览器自带的原始滚动条很不美观,在一些特殊需求中,我们需要对滚动条的样式单独设置,因此就出现了用-webkit-scrollbar来自定义滚动条的样式。。
首先
webkit支持拥有overflow属性的区域,列表框,下拉菜单,textarea的滚动条自定义样式,所以用处还是挺大的。当然,兼容所有浏览器的滚动条样式目前是不存在的。
滚动条的组成

  • ::-webkit-scrollbar 滚动条整体部分
  • ::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或往左往右移动,取决于是垂直滚动条还是水平滚动条)
  • ::-webkit-scrollbar-track 滚动条的轨道(里面装有Thumb)
  • ::-webkit-scrollbar-button 滚动条的轨道的两端按钮,允许通过点击微调小方块的位置。
  • ::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分(除去)
  • ::-webkit-scrollbar-corner 边角,即两个滚动条的交汇处
  • ::-webkit-resizer 两个滚动条的交汇处上用于通过拖动调整元素大小的小控件

演示
默认滚动条样式:
这里写图片描述
自定义滚动条样式:
这里写图片描述

简洁代码介绍–仅支持谷歌浏览器:

/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/  
::-webkit-scrollbar  
{  
    width: 10px;    
    background-color: #fff;  
}  

/*定义滚动条轨道 内阴影+圆角*/  
::-webkit-scrollbar-track  
{  
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);  
    border-radius: 10px;  
    background-color: lightgray;  
}  

/*定义滑块 内阴影+圆角*/  
::-webkit-scrollbar-thumb  
{  
    border-radius: 10px;  
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);  
    background-color: blue;  
}  
/*定义最上方和最下方的按钮*/
::-webkit-scrollbar-button{
     background-color: #000;
     border:1px solid yellow;
}

具体的详细介绍,大家可以参考网址:http://www.xuanfengge.com/css3-webkit-scrollbar.html

最后,上面的写法仅支持谷歌浏览器,不兼容火狐、IE。。

IE 的写法和上面不太一样

scrollbar-arrow-color: color; /*三角箭头的颜色*/
scrollbar-face-color: color; /*立体滚动条的颜色(包括箭头部分的背景色)*/
scrollbar-3dlight-color: color; /*立体滚动条亮边的颜色*/
scrollbar-highlight-color: color; /*滚动条的高亮颜色(左阴影?)*/
scrollbar-shadow-color: color; /*立体滚动条阴影的颜色*/
scrollbar-darkshadow-color: color; /*立体滚动条外阴影的颜色*/
scrollbar-track-color: color; /*立体滚动条背景颜色*/
scrollbar-base-color:color; /*滚动条的基色*/

令人遗憾的是 火狐目前还没有修改滚动条样式的 CSS支持,但是我们可以用插件 malihu-custom-scrollbar-plugin
具体的插件使用介绍网址:https://www.cnblogs.com/yclblog/p/6806496.html

### 使用和自定义 `-webkit-scrollbar-button` 样式 #### 定义与作用 `-webkit-scrollbar-button` 是 WebKit 浏览器特有的伪类,用于控制滚动条轨道两端的按钮样式。这些按钮通常用来微调滚动位置,在某些情况下可以提供更精细的内容浏览体验[^4]。 #### 基础语法结构 要应用此样式,需遵循如下基本语法规则: ```css /* 针对所有方向上的按钮 */ ::-webkit-scrollbar-button { /* 设置背景颜色或其他外观属性 */ } /* 或者分别针对上下左右四个方向单独定制 */ ::-webkit-scrollbar-button:start:decrement, ::-webkit-scrollbar-button:end:increment { width: 10px; height: 10px; } ``` 对于具体的 `start`, `end`, `decrement`, 和 `increment` 关键字含义解释如下: - `start`: 表示位于容器起始端(顶部/左侧)的按钮; - `end`: 对应于结束端(底部/右侧)的按钮; - `decrement`: 减少滚动量的方向; - `increment`: 增加滚动量的方向; #### 实际案例展示 下面给出一段完整的 CSS 示例来说明如何具体化上述概念并实现美观实用的效果: ```css /* 给定一个具有固定高度且溢出内容可滚动的 div */ div.example-scrollable-area { overflow-y: scroll; max-height: 200px; } /* 自定义整个滚动条的颜色方案 */ div.example-scrollable-area::-webkit-scrollbar { width: 8px; } /* 修改默认箭头图标为实心圆点 */ div.example-scrollable-area::-webkit-scrollbar-button:single-button { background-color: transparent; display: block; mask-image: radial-gradient(circle, black 50%, rgba(0, 0, 0, 0) 70%); webkit-mask-box-image: initial; } /* 当鼠标悬停时改变按钮背景色 */ div.example-webkit-scrollbar-button:hover { background-color: #606060; } ``` 这段代码不仅改变了滚动条上按钮的基础视觉效果,还增加了交互反馈机制——当用户的光标停留在按钮上方时会触发背景变暗的现象[^1]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值