【CSS】关于滚动条样式

【CSS】关于滚动条样式这是我参与8月更文挑战的第16天,活动详情查看:8月更文挑战 关于滚动条 本篇文章主要介绍CSS中滚动条样式的设置

这是我参与8月更文挑战的第16天,活动详情查看:8月更文挑战

关于滚动条

(1)先来看看overflow

这个属性用于:在内容超出容器时,如何处理内容的显示

可选值有:

  • 常用的:visiblehiddenscrollautooverlay
  • 不常用的:unsetinheritinitialrevert

其它的:

  • overflow生效,容器必须有一个指定的高度

  • overflow实际是overflow-xoverflow-y的简写

    div {
        overflow: hidden;
        /* overflow-x: hidden; overflow-y: hidden; */
    }
    
    • 也可以设置两个属性值,将分别作用于x轴和y

      div {
          overflow: auto hidden;
          /* overflow-x: auto; overflow-y: hidden; */
      }
      
(a)visible
  • visible是默认的值,它不会对元素内容作处理,溢出内容会直接显示在容器外部

滚动条1.png

(b)hidden
  • hidden会对溢出内容作裁剪,超出容器的部分不可见,且不会出现滚动条,页面也无法滚动

滚动条2.png

(c)scroll
  • scroll也会对内容作裁剪,但同时也会在容器上呈现出滚动条,可以滚动滚动条来显示溢出的内容

滚动条3.png

(d)auto
  • auto会在内容有溢出时才显示滚动条,没有溢出则不显示滚动条

滚动条4.png

(e)overlay
  • overlayauto

    • 不同的是,auto显示的滚动条会在容器内占据一个位置,会导致内容发生位移

    • overlay则是会覆盖在容器右侧,不会占据位置

滚动条5.png

(2)然后看看滚动条样式

原生的滚动条样式可能并不是那么美观,所以,有时候需要自定义滚动条样式,让其更符合我们的UI设计

(a)伪元素属性
  • 美化滚动条样式,主要涉及以下几个伪元素属性(注,这里以chrome浏览器作示例)

  • ::-webkit-scrollbar

    • 用于设置滚动条的整体样式
    • 在这里设置宽高,以控制滚动条尺寸,且必须要设置宽高,否则不生效
    • 宽高分别对应 y轴 和 x轴 的滚动条尺寸
    • 若宽高为0,则可隐藏滚动条,但仍可保持滚动
  • ::-webkit-scrollbar-track

    • 滚动条轨道
    • 不设置则不出现轨道
  • ::-webkit-scrollbar-track-piece

    • 没有滑块的滚动条轨道,或者说是内层轨道
    • 同滚动条轨道,
  • ::-webkit-scrollbar-thumb

    • 滚动条滑块,即滚动条滚动的部分
    • 必须要设置,否则不会出现滑块
  • ::-webkit-scrollbar-button

    • 滚动条两端的箭头按钮
    • 不设置则不出现
  • ::-webkit-scrollbar-corner

    • X轴滚动条和Y轴滚动条的交接处
    • 不设置,默认为白色小方块,宽高随X轴和Y轴滚动条尺寸

滚动条6.png

/* 滚动条所在容器 */
.scroll-container {
    margin: 10px;
    width: 500px;
    height: 150px;
    overflow: overlay;
    background-color: #eee;
    white-space: nowrap;
}

/* 滚动条整体 */
.scroll-container::-webkit-scrollbar {
    height: 20px;
    width: 20;
}
/* 两个滚动条交接处 -- x轴和y轴 */
.scroll-container::-webkit-scrollbar-corner {
    background-color: transparent;
}

/* 滚动条滑块 */
.scroll-container::-webkit-scrollbar-thumb {
    border-radius: 10px;
    -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
    background: #535353;
}

/* 滚动条轨道 */
.scroll-container::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    background: #ededed;
}

/* 滚动条两端按钮 */
.scroll-container::-webkit-scrollbar-button {
}

滚动条7.png

以上部分,可以用来配置大部分的滚动条样式了

不过更多的还需要搭配伪类来进行一些额外的配置

(b)伪类属性
  • 为了更好的美化滚动条样式,可以搭配一些伪类属性来进行优化

    注:后面使用less语法,方便查看

  • 分别设置水平和垂直方向上的滚动条

    • :horizontal:适用于任何水平方向上的滚动条
    • :vertical:适用于任何垂直方向的滚动条
    
    ::-webkit-scrollbar-track {
        box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
        background: #eee;
        // 添加 horizonal ,单独设置水平方向上的 轨道
        &:horizontal {
            background-color: blue;
        }
    }
    ::-webkit-scrollbar-thumb {
        border-radius: 10px;
        box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
        background: #535353;
        // 添加 vertical ,单独设置垂直方向上的 滑块
        &:vertical {
            background-color: red;
        }
    }
    

滚动条8.png

  • 分别设置左右(上下)按钮、区域

    • :decrement:start:适用于按钮和内层轨道

      • 表示左(上)侧的按钮
      • 表示滑块左侧(上侧)的内层轨道区域
    • :increment:end:适用于按钮和内层轨道

      • 表示右侧(下侧)按钮

      • 表示滑块右侧(下侧)的内层轨道区域

      注意:只对::-webkit-scrollbar-button::-webkit-scrollbar-track-piece两个伪元素起作用

    ::-webkit-scrollbar-button {
        // 左侧、上侧
        &:decrement {
            background-color: purple;
        }
        // 右侧、下侧
        &:increment {
            background-color: green;
        }
    }
    ::-webkit-scrollbar-track-piece {
        // 内层轨道 滑块左侧、上侧
        &:decrement {
            background-color: red;
        }
        // 内层轨道 滑块右侧、下侧
        &:increment {
            background-color: blue;
        }
    }
    

滚动条9.png

滚动条10.png

  • :window-inactive

    • 适用于所有滚动条,当焦点不在滚动条窗口的时候生效
  • 这里还有一些其它伪类,暂时还不知道怎么用

    • :double-button:适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。
    • :single-button:适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。
    • :no-button:表示轨道结束的位置没有按钮。
    • :corner-present:表示滚动条的角落是否存在。
  • 另外,还可以搭配其它伪类,比如:hover:active


本人前端小菜鸡,如有不对请谅解

今天的文章【CSS】关于滚动条样式分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13553.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注