首页 > 其他分享 >【CSS】滚动条样式的优化

【CSS】滚动条样式的优化

时间:2024-02-29 09:57:30浏览次数:21  
标签:样式 轨道 滚动条 color scrollbar 按钮 webkit CSS

【转】https://zhuanlan.zhihu.com/p/110029332?utm_id=0

前言

优化后的滚动条会提亮我们的网站页面。

 

例如:CSS-TRICKS这个网站如果采用的是浏览器默认的滚动条,不进行优化,页面会显得很不搭。

所以该网站的滚动条样式优化如下:

html::-webkit-scrollbar {
    width: 30px;
    height: 30px;
}
html::-webkit-scrollbar-thumb {
    background: -webkit-gradient(linear,left top,left bottom,from(#ff8a00),to(#e52e71));
    background: linear-gradient(180deg,#ff8a00,#e52e71);
    border-radius: 30px;
    box-shadow: inset 2px 2px 2px hsla(0,0%,100%,.25), inset -2px -2px 2px rgba(0,0,0,.25);
}
html::-webkit-scrollbar-track {
    background: linear-gradient(90deg,#201c29,#201c29 1px,#100e17 0,#100e17);
}

那么::-webkit-scrollbar::-webkit-scrollbar-thumb::-webkit-scrollbar-track是什么以及怎么用请继续往下阅读。

webkit内核下

这些伪元素仅使用在支持webkit的浏览器上(如ChromeSafari)。

滚动条伪元素作用的位置::-webkit-scrollbar整个滚动条::-webkit-scrollbar-button滚动条上的按钮 (上下箭头)::-webkit-scrollbar-thumb滚动条上的滚动滑块::-webkit-scrollbar-track滚动条轨道::-webkit-scrollbar-track-piece滚动条没有滑块的轨道部分::-webkit-scrollbar-corner当同时有垂直滚动条和水平滚动条时交汇的部分::-webkit-resizer某些元素的corner部分的部分样式(例:textarea的可拖动按钮)

在图上就能更清晰地呈现:

 

总结:这些伪元素支持Chrome EdgeOpera SafariAndroid webviewChrome for AndroidOpera for AndroidSafari on iOSSamsung Internet,不支持FirefoxInternet ExplorerFirefox for Android。所以想要兼容其余浏览器,就得转Trident(IE)内核下目录。

当然webkit提供的不止这些,还有很多伪类,更丰富滚动条样式:

滚动条伪类作用的位置:horizontal适用于任何水平方向上的滚动条:vertical适用于任何垂直方向的滚动条:decrement适用于按钮和轨道碎片。表示递减的按钮或轨道碎片,例如可以使区域向上或者向右移动的区域和按钮:increment适用于按钮和轨道碎片。表示递增的按钮或轨道碎片,例如可以使区域向下或者向左移动的区域和按钮:start适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的前面:end适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的后面:double-button适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。:single-button适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。:no-button表示轨道结束的位置没有按钮。:corner-present表示滚动条的角落是否存在。:window-inactive适用于所有滚动条,表示包含滚动条的区域,焦点不在该窗口的时候。

根据这些知识,可以得出CSS-TRICKS这个网站的滚动条样式:

  1. 水平滚动条高30px,垂直滚动条宽30px
  2. 滚动条上的滚动滑块背景色是从上到下#ed4f32渐变到#f5f5f5,边框圆角是30px,内部阴影是x方向上和y方向上平移2px-2px,阴影颜色分别是hsla(0,0%,100%,.25)rgba(0,0,0,.25)
  3. 滚动条轨道背景色渐变

写炫酷的滚动条样式是要积累的。

不会写box-shoadow可以使用Box-shadow_generator生成器

伪元素+伪类更能精准定位达到意想不到的效果。

作用在滚动条的上半边

html::-webkit-scrollbar-track-piece:vertical:start {
    background: rgb(225, 126, 16);
}

滚动条的上半边就是背景色是rgb(225, 126, 16)

动图封面  

是不是很像车开过,留下的车痕

焦点不在滑块上

html::-webkit-scrollbar-thumb:window-inactive {
    background: rgb(160, 87, 221);
}
动图封面  

鼠标在滚动条递减的按钮上

.div-2::-webkit-scrollbar-button:decrement:hover {
    background: #fff;
}
动图封面  

各伪元素的颜色区分图

红色 ::-webkit-scrollbar

橙色 ::-webkit-scrollbar-button

黄色 ::-webkit-scrollbar-thumb

绿色 ::-webkit-scrollbar-track

青色 ::-webkit-scrollbar-track-piece

蓝色 ::-webkit-scrollbar-corner
动图封面  

textarea下的-webkit-resizer

紫色 ::-webkit-resizer
动图封面  

默认浏览器

动图封面  

自定义滚动条案例

简约风格的

动图封面  

胶囊风格的

动图封面  

彩条风格的

动图封面  

两色风格的

动图封面  

图片按钮的

动图封面  

Trident(IE)内核下

IE5+上的滚动条属性其作用scrollbar-3dlight-color设置对象滚动条3d亮色阴影边框(threedlightshadow)的外观颜色。scrollbar-darkshadow-color设置对象滚动条3d暗色阴影边框(threeddarkshadow)的外观颜色。scrollbar-highlight-color设置对象滚动条3d高亮边框(threedhighlight)的外观颜色。scrollbar-shadow-color设置对象滚动条3d阴影边框(threedshadow)的外观颜色。scrollbar-arrow-color设置对象滚动条方向箭头的颜色。当滚动条出现但不可用时,此属性失效。scrollbar-face-color设置对象滚动条3D表面的(threedface)的外观颜色。scrollbar-track-color设置对象滚动条拖动区域的外观颜色。scrollbar-base-color设置对象滚动条基准颜色,其它界面颜色将据此自动调整。scrollbar-color该CSS属性设置滚动条轨道和按钮的颜色

在图上就能更清晰地呈现:

都是color,所以在IE上只能改颜色

动图封面  

 

经测试IE7以上,scrollbar-3dlight-color:scrollbar-colorscrollbar-darkshadow-color就起不到作用。

所以,只要有耐心,快去实现头图的滚动条吧avatar。

所有demo的预览地址

参考文献

::-webkit-scrollbar

scrollbar-color

 

标签:样式,轨道,滚动条,color,scrollbar,按钮,webkit,CSS
From: https://www.cnblogs.com/guxingzhe/p/18042751

相关文章

  • css 渐变 透明
    透明也算一个颜色百分比表示的是位置 线性渐变background:linear-gradient(blue,pink);background:linear-gradient(toright,blue,pink);background:linear-gradient(70deg,blue,pink);background:linear-gradient(red,yellow,blue,orange);background:......
  • javaweb01-html&css
    HTML-CSS基础介绍html:超文本标记语言学习标签css:层叠样式表学习样式基础标签&样式-新浪新闻biao标题标题排版(标签介绍)标题标签h1、h2水平线标签hr图片标签img超链接a标题样式css引入方式:行内样式:内嵌样式:外联样式:<link颜色表示形式:关键字:redrbg表示法:#rgb(......
  • Vue 2x 系列之(十)绑定样式
    绑定样式1.class样式绑定样式: 1.class样式【不变的样式写在class、style中,变化的样式写在:class中,最终的样式为三者的并集】 写法:class="xxx"xxx可以是字符串、对象、数组。 字符串写法适用于:类名不确定,要动态获取。 对象写法适用于:要绑定多个样式,个数......
  • 解决uniapp项目中使用vant Weapp图标组件报错问题(Module build failed from ./node_mo
    解决uniapp项目中使用vantWeapp图标组件报错问题(Modulebuildfailedfrom./node_modules/postcss-loader/src/index):https://blog.csdn.net/it_cgq/article/details/111991644?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170909210216800225582870%2522%252C%252......
  • css 设置版本号
      .el-row::before{content:"";width:0;height:0;border:60pxsolidtransparent;border-right:60pxsolid#e3e3e3;transform:rotate(135deg);position:absolute;right:-61px;top:-61px;cursor:pointer;}.el......
  • 怎么将word转成pdf保留原格式和样式?
    将Word文档转换为PDF是一种非常常见的需求,因为PDF格式能够保持文档的原格式和样式,并且可以被广泛地共享和查看。但有时候,转换后的PDF文件可能与原始Word文件在布局和排版方面存在差异。那么为什么会出现这种情况,哪些方法能确保将Word文档转换为PDF时保留原来的格式和样式呢?一、为......
  • 面试题(一)—— CSS 盒模型
    一、什么是 CSS盒模型CSS盒模型是指在网页中,每个元素都被看作是一个矩形的盒子,这个盒子包含了元素的内容(content)、内边距(padding)、边框(border)和外边距(margin)。 二、标准盒模型与怪异盒模型1、box-sizing两个常用参数:content-box:默认值。标准盒模型border-box:怪异盒模......
  • 现代 CSS 解决方案:accent-color 强调色
    accent-color是从Chrome93开始被得到支持的一个不算太新属性。之前一直没有好好介绍一下这个属性。直到最近在给一些系统整体切换主题色的时候,更深入的了解了一下这个属性。简单而言,CSSaccent-color支持使用几行简单的CSS为表单元素着色,是的,只需几行代码就可以将主题颜色......
  • three.js使用 CSS2DRenderer
    导入 import{CSS2DRenderer,CSS2DObject}from'three/examples/jsm/renderers/CSS2DRenderer';functioncreateLableObj(text,vector){letlaberDiv=document.createElement('div');//创建div容器laberDiv.className='laber_name......
  • CSS 三大特性:继承、层叠性、优先级
    #CSS三大特性:继承、层叠性、优先级TIP我们实际的开发中,经常会遇到CSS应用时的冲突问题。比如本来应该产生效果的样式没有生效,或有时候不想要的效果硬实现了,为什么会产生这种效果,我们搞不清原因。接下来我们要学的CSS三大特性:继承性、层叠性、优先级就是为解决这些问题而......