夜听城嚣 夜听城嚣
首页
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 前端基建与架构
  • 专题分享

    • Git入门与开发
    • 前端面试题汇总
    • HTML和CSS知识点
  • 项目实践
  • 抓包工具
  • 知识管理
  • 工程部署
  • 团队规范
bug知多少
  • 少年歌行
  • 青年随笔
  • 文海泛舟
  • 此事躬行

    • 项目各工种是如何协作的
    • TBA课程学习
收藏

dwfrost

前端界的小学生
首页
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 前端基建与架构
  • 专题分享

    • Git入门与开发
    • 前端面试题汇总
    • HTML和CSS知识点
  • 项目实践
  • 抓包工具
  • 知识管理
  • 工程部署
  • 团队规范
bug知多少
  • 少年歌行
  • 青年随笔
  • 文海泛舟
  • 此事躬行

    • 项目各工种是如何协作的
    • TBA课程学习
收藏
  • css.requireModuleExtension和css Modules
  • css scrollbar样式设置
    • iphonex适配
    • HTML和CSS知识点
    frost
    2021-11-05

    css scrollbar样式设置

    本文转载自css scrollbar 样式设置 (opens new window),样式属性解读和 demo 预览都有,下面是全文

    # 一 前言

    在 CSS 中,如果我们在块级容器上设置了属性:

    overflow:scroll /* x y 方向都会*/
    或者
    overflow-x:scroll /*只是x方向*/
    或者
    overflow-y:scroll  /*只是y方向*/
    
    1
    2
    3
    4
    5

    当块级内容区域超出块级元素范围的时候,就会以滚动条的形式展示,你可以滚动里面的内容,里面的内容不会超出块级区域范围。有时候我们需要自定义滚动条的样式,比如一开始 就它显示,比如想改变滚动条的颜色,设置轨道的样式等,那么这篇文章就是为你准备的。

    # 二 正文

    1.认识滚动条

    图片描述

    设置 scrollbar 的为 CSS 伪元素,对应上图的数字:

    ::-webkit-scrollbar              { /* 1 */ }
    ::-webkit-scrollbar-button       { /* 2 */ }
    ::-webkit-scrollbar-track        { /* 3 */ }
    ::-webkit-scrollbar-track-piece  { /* 4 */ }
    ::-webkit-scrollbar-thumb        { /* 5 */ }
    ::-webkit-scrollbar-corner       { /* 6 */ }
    ::-webkit-resizer                { /* 7 */ }
    
    1
    2
    3
    4
    5
    6
    7

    属性介绍:

    ::-webkit-scrollbar    //滚动条整体部分
    ::-webkit-scrollbar-button   //滚动条两端的按钮
    ::-webkit-scrollbar-track   // 外层轨道
    ::-webkit-scrollbar-track-piece    //内层轨道,滚动条中间部分(除去)
    ::-webkit-scrollbar-thumb //滚动条里面可以拖动的那个
    ::-webkit-scrollbar-corner   //边角
    ::-webkit-resizer   ///定义右下角拖动块的样式
    
    1
    2
    3
    4
    5
    6
    7

    2.设置样式

    demo (opens new window) 进入页面,打开控制台工具,选中其中一个样式,就能看到该样式的 CSS 源码。

    /*定义滚动条高宽及背景
     高宽分别对应横竖滚动条的尺寸*/
    ::-webkit-scrollbar {
      width: 16px;
      height: 16px;
      background-color: #f5f5f5;
    }
    /*定义滚动条轨道
     内阴影+圆角*/
    ::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      border-radius: 10px;
      background-color: #f5f5f5;
    }
    /*定义滑块
     内阴影+圆角*/
    ::-webkit-scrollbar-thumb {
      border-radius: 10px;
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #555;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    图片描述

    任何对象都可以设置:边框、阴影、背景图片等等,创建的滚动条任然会按照操作系统本身的设置来完成其交互的行为。下面的伪类可以应用到上面的伪元素中。

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

    用法举例:

    ::-webkit-scrollbar-track-piece:start {
       /* Select the top half (or left half) or scrollbar track individually */
    }
    
    ::-webkit-scrollbar-thumb:window-inactive {
       /* Select the thumb when the browser window isn't in focus */
    }
    
    ::-webkit-scrollbar-button:horizontal:decrement:hover {
       /* Select the down or left scroll button when it's being hovered by the mouse */
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    3.IE 浏览器兼容 IE 的参考链接 :https://www.cnblogs.com/koley... (opens new window)

    图片描述

    图片描述

    # 三 后记

    Chrome 能很好的支持自定义滚动条,其它的浏览器在不同程度上支持自定义滚动条样式。参考文章 :CSS3 自定义滚动条样式 (opens new window)

    为防止demo失效,已拷贝一份地址到github,见github (opens new window)。

    #CSS#转载
    上次更新: 2021/11/05, 14:31:10
    css.requireModuleExtension和css Modules
    iphonex适配

    ← css.requireModuleExtension和css Modules iphonex适配→

    最近更新
    01
    提交代码时修改commit消息
    04-09
    02
    如何快速定位bug
    02-20
    03
    云端web项目开发踩坑
    08-25
    更多文章>
    Theme by Vdoing | Copyright © 2021-2025 dwfrost | 粤ICP备2021118995号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×