zoukankan      html  css  js  c++  java
  • css3能让我们设置浏览器滚动条的另类效果

    webkit内核滚动条

    webkit内核的浏览器:chrome、safari、edge,因为自定义滚动条目前只有webkit内核的浏览器支持和FireFox支持部分功能,所以我们下边的属性都应用了::-webkit-前缀

    image

    滚动条属性选择器

    这里我通过案例递增添加属性,我们可以通过下边的案例来理解各个属性指哪个位置

    案例:https://codepen.io/qwguo88/full/bGVmmdQ

    scrollbar

    设置滚动条整体部分样式,可以设置基本的css属性,包括,宽、高、背景颜色、边线等,这里需要注意的是设置高点的时候只对横线滚动条生效宽度为容器宽度,设置宽度的时候对纵向滚动条生效高度为容器高度。

    语法:

    ::-webkit-scrollbar { styles }
    selector::-webkit-scrollbar{ styles }
    

    scrollbar-button

    设置滚动条两端的按钮样式;

    语法:

    ::-webkit-scrollbar-button { styles }
    selector::-webkit-scrollbar-button{ styles }
    

    注意:

    1. 横向滚动条为左右按钮,可以设置宽度,当设置高度是,并不生效高度为总的滚动条高度;
    2. 纵向滚动条为上下按钮,可以设置高度,当设置宽度时也并不生效,它的宽度是总体滚动条的宽度;
    3. 如果想设置按钮和滚动条有间距并不会生效,可以设置边框再通过边框颜色透明方式实现外间距,但是这里背景绘制区域需要设置为content-box

    scrollbar-track

    设置滚动条外层轨道的样式,也就是两个按钮之间的区域。

    语法:

    ::-webkit-scrollbar-track { styles }
    selector::-webkit-scrollbar-track{ styles }
    

    scrollbar-track-piece

    设置滚动条碎片的样式,也就是内层滚动槽的样式。

    语法:

    ::-webkit-scrollbar-track-piece { styles }
    selector::-webkit-scrollbar-track-piece{ styles }
    

    scrollbar-thumb

    设置滚动滑块的样式,也就是我们平时拖动的滚动条区域。

    语法:

    ::-webkit-scrollbar-thumb { styles }
    selector::-webkit-scrollbar-thumb{ styles }
    

    scrollbar-corner

    设置横向和纵向滚动条相交的区域的边角样式。

    语法:

    ::-webkit-scrollbar-corner { styles }
    selector::-webkit-scrollbar-corner{ styles }
    

    scrollbar-resize

    设置滚动条右下角拖动块的样式,这个设置我测试并不生效,如果需要显示拖动区域需要给元素设置resize:both

    语法:

    ::-webkit-scrollbar-resize { styles }
    selector::-webkit-scrollbar-resize{ styles }
    

    不同状态伪类

    案例: https://codepen.io/qwguo88/pen/QWjYwKd

    :horizontal

    水平伪类表示用来设置水平方向上的滚动条

    语法:

    ::-webkit-scrollbar:horizontal { styles }
    selector::-webkit-scrollbar:horizontal{ styles }
    

    :vertical

    垂直伪类表示用来设置垂直方向上的滚动条

    语法:

    ::-webkit-scrollbar:vertical { styles }
    selector::-webkit-scrollbar:vertical{ styles }
    

    :decrement

    适用于按钮和轨道碎片。表示递减的按钮或轨道碎片,例如可以使区域向上或者向右移动的区域和按钮

    语法:

    ::-webkit-scrollbar-(button | track):decrement { styles }
    selector::-webkit-scrollbar-(button | track):decrement{ styles }
    

    这里说明一下:decrement:应用到按钮设置的时候表示:横向按钮的左按钮,纵向按钮的上按钮,应用在轨道碎片上:横向表示碎片上半部分,纵向表示碎片左半部分

    :increment

    适用于按钮和轨道碎片。表示递增的按钮或轨道碎片,例如可以使区域向下或者向左移动的区域和按钮

    语法:

    ::-webkit-scrollbar-(button | track):increment { styles }
    selector::-webkit-scrollbar-(button | track):increment{ styles }
    

    这里说明一下:increment:应用到按钮设置的时候表示:横向按钮的右按钮,纵向按钮的下按钮,应用在轨道碎片上:横向表示碎片下半部分,纵向表示碎片右半部分

    :start

    适用于按钮和轨道碎片。表示对象(按钮轨道碎片)的前一个,他和上边的:decrement效果一样

    :end

    适用于按钮和轨道碎片。表示对象(按钮轨道碎片)的后一个,他和上边的:increment效果一样

    :double-button

    适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。没测试出来

    :single-button

    适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。没测试出来

    :no-button

    表示轨道结束的位置没有按钮。没测试出来

    :corner-present

    表示滚动条的角落是否存在。测试的是会覆盖原有的样式,不知道什么意思

    :window-inactive

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

    ::-webkit-scrollbar-thumb:window-inactive{ styles }
    selector::-webkit-scrollbar-thumb:window-inactive{ styles }
    

    :enabled

    表示当前滚动条激活状态的样式。

    :disabled

    表示滚动条禁用的样式。

    :hover

    表示当鼠标方式去的滚动条各属性的样式。

    :active

    表示鼠标按下时滚动条个属性的样式。

    FireFox浏览器

    案例需要使用Firefox浏览器查看效果

    展示案例: https://codepen.io/qwguo88/full/zYvMzVJ

    scrollbar-width

    用来设置滚动条出现时的厚度,横向滚动条设置高度,纵向滚动条设置的是高度。

    语法:

    div{
      scrollbar- none | auto | thin;
    }
    

    参数说明:

    1. none:不显示滚动条,但是dom元素任然可以正常滚动。
    2. auto:默认值,表示走浏览器默认的样式。
    3. thin:比默认的滚动条要小一些,横向的变低,纵向的变窄。

    scrollbar-color

    用来设置滚动条的颜色

    语法:

    div{
      scrollbar-color: thumbColor trackColor;
    }
    

    参数说明:

    1. thumbColor:用来设置滚动条拖动的滑块颜色。
    2. trackColor:用来设置滚动条轨道的颜色。

    参考文章

    1. https://css-tricks.com/custom-scrollbars-in-webkit/
    2. https://webkit.org/blog/363/styling-scrollbars/
    3. https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-width
  • 相关阅读:
    Mac 自带 apache 服务器
    比较器Comparable Comparator
    深入学习二叉树(01)完全二叉树
    深入学习二叉树(02)线索二叉树
    深入学习二叉树(06)霍夫曼树/哈夫曼编码/最优二叉树
    深入学习二叉树(05)红黑树
    深入学习二叉树(07)B树
    Java 1.8 红黑树
    ConcurrentHashMap 结构 1.7 与1.8
    git 操作详情
  • 原文地址:https://www.cnblogs.com/qwguo/p/13030693.html
Copyright © 2011-2022 走看看