webkit内核的浏览器滚动条定制

    ::-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 */ }

以上CSS代码所管辖的区域对就关系:以上注释中的数字与下图中数字相对应。

上图正如如下所言:

  • ::-webkit-scrollbar        滚动条整体部分,其中的属性有width,height,background,border(就和一个块级元素一样)等。
  • ::-webkit-scrollbar-button      滚动条两端的按钮。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。
  • ::-webkit-scrollbar-track         外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。
  • ::-webkit-scrollbar-track-piece        内层轨道,滚动条中间部分(除去)。
  • ::-webkit-scrollbar-thumb               滚动条里面可以拖动的那部分
  • ::-webkit-scrollbar-corner               边角
  • ::-webkit-resizer                       定义右下角拖动块的样式

注意:对以上各个部分定义width,height时。有如下功能:若是水平滚动条,则width属性不起作用,height属性用来控制滚动条相应部分竖直方向高度;若是竖直滚动条,则height属性不起作用,width属性用来控制相应部分的宽度。

能过上面的不断的测试。在Chrome中,滚动条中的各个部分和DOM中块级元素是一样的。通过::-webkit-scrollbar等就类似于原来所说的CSS中的选择器。而{}中的属性,你就像控制一般块级元素一样简单(强大啊)。

CSS部分代码:

 #scroll-1 {
        width:200px;
        height:200px;
        overflow:auto;
    }
    #scroll-1 div {
        width:400px;
        height:400px;
    }    #scroll-1::-webkit-scrollbar {
        width:10px;
        height:10px;
    }
    #scroll-1::-webkit-scrollbar-button    {
        background-color:#FF7677;
    }
    #scroll-1::-webkit-scrollbar-track     {
        background:#FF66D5;
    }
    #scroll-1::-webkit-scrollbar-track-piece {
        background:url(http://www.lyblog.net/wp/wp-content/themes/mine/img/stripes_tiny_08.png);
    }
    #scroll-1::-webkit-scrollbar-thumb{
        background:#FFA711;
        border-radius:4px;
    }
    #scroll-1::-webkit-scrollbar-corner {
        background:#82AFFF;
    }
    #scroll-1::-webkit-scrollbar-resizer  {
        background:#FF0BEE;
    }

HTML结构:

<div id=‘scroll-1‘>
        <div >
            <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
                小天地,大世界是一个Web前端的技术博客。 主要是关于
                HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
                包含一些PHP语言等的实用例子。</p>
            <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
                小天地,大世界是一个Web前端的技术博客。 主要是关于
                HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
                包含一些PHP语言等的实用例子。</p>
            <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
                小天地,大世界是一个Web前端的技术博客。 主要是关于
                HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
                包含一些PHP语言等的实用例子。</p>
            <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
                小天地,大世界是一个Web前端的技术博客。 主要是关于
                HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
                包含一些PHP语言等的实用例子。</p>
            <p>请选择Webkit内核的浏览器才可以正常的看到滚动条的变化。
                小天地,大世界是一个Web前端的技术博客。 主要是关于
                HTML 5,CSS 3,JavaScript,JQuery等。除此之外,还
                包含一些PHP语言等的实用例子。</p>
        </div>
    </div>

通过以上,我们几乎就可以来重写网站的滚动条了,但是webkit提供的还有更多的伪类,可以定制更丰富滚动条样式。本文以下内容参考:https://www.webkit.org/blog/363/styling-scrollbars/

  • :horizontal     horizontal  伪类,主要应用于选择水平方向滚动条。
  • :vertical    vertical伪类主要是应用于选择竖直方向滚动条
  • :decrement    decrement伪类应用于按钮和内层轨道(track piece)。它用来指示按钮或者内层轨道是否会减小视窗的位置(比如,垂直滚动条的上面,水平滚动条的左边。)
  • :increment     increment伪类与和decrement类似,用来指示按钮或内层轨道是否会增大视窗的位置(比如,垂直滚动条的下面和水平滚动条的右边。)
  • :start    start伪类也应用于按钮和滑块。它用来定义对象是否放到滑块的前面。
  • :end     类似于start伪类,标识对象是否放到滑块的后面。
  • :double-button    该伪类可以用于按钮和内层轨道。用于判断一个按钮是不是放在滚动条同一端的一对按钮中的一个。对于内层轨道来说,它表示内层轨道是否紧靠一对按钮。
  • :single-button    类似于double-button伪类。对按钮来说,它用于判断一个按钮是否自己独立的在滚动条的一段。对内层轨道来说,它表示内层轨道是否紧靠一个single-button。
  • :no-button    用于内层轨道,表示内层轨道是否要滚动到滚动条的终端,比如,滚动条两端没有按钮的时候。
  • :corner-present    用于所有滚动条轨道,指示滚动条圆角是否显示。
  • :window-inactive    用于所有的滚动条轨道,指示应用滚动条的某个页面容器(元素)是否当前被激活。(在webkit最近的版本中,该伪类也可以用于::selection伪元素。webkit团队有计划扩展它并推动成为一个标准的伪类)
时间: 2024-08-02 14:55:18

webkit内核的浏览器滚动条定制的相关文章

用css对webkit内核的浏览器自定义滚动条

用css设置webkit内核浏览器的滚动条主要设置以下7个属性: 1.::-webkit-scrollbar /*滚动条整体部分,可以设置宽度高度*/ 2.::-webkit-scrollbar-button /*滚动条两端的按钮*/ 3.::-webkit-scrollbar-track  /*外层轨道*/ 4.::-webkit-scrollbar-track-piece  /*内层滚动槽*/ 5.::-webkit-scrollbar-thumb /*滚动的滑块*/ 6.::-webkit

webkit内核的浏览器常见7种分别是..

Google Chrome Safari 遨游浏览器 3.x 搜狗浏览器 阿里云浏览器 QQ浏览器 360浏览器 ... 原文地址:https://www.cnblogs.com/snowbxb/p/11352742.html

请使用webkit内核标准浏览器查看效果

.change{ display:block; width:400px; height:400px; background:url(http://p3.qhimg.com/t0134c65e59012a1257.png) no-repeat center; background-size:cover; border:1em solid rgba(255,255,255,.8); margin:50px auto; } .change img{ display:block; width:300px

自定义浏览器滚动条的样式,打造属于你的滚动条风格——兼容IE和webkit(ff不支持)

前段时间,到网上找素材时,看到了一个很个性的滚动条式,打开Chrome的调试工具看了一下,发现不是用JavaScript来模拟实现的,觉得 有必要折腾一下.于是在各大浏览器中对比了一下,发现只用Chrome适用,也就是说这个用的是Chrome的私有CSS属性.便百之谷之后,发现原来不 仅仅只用Chrome,其它的浏览器在不同程度上支持自定义滚动条样式的.下面是我不断测试的结果,若有错误或不全,请在评论里面给出,我会立马更正:若 有更好的方案,你可以留言,让大家都开开眼界...... 自定义IE浏

自定义浏览器滚动条样式

为了有助于理解IE中滚动条样式的控制,你可以查看如下的图片: 经过不断的测试发现,在Win8 下面,有一部分样式都起着相同的作用.估计是因为在Win8中扁平化的界面设计而重新定议了系统中滚动条!以下是Win 8下面的滚动条样式,并写出了和CSS支持的情况: 以上所写的几个四个CSS属性,足以控制Win 8系统下,IE浏览器的滚动条样式了.但经过测试,发现,其它的四个属性仍然支持(主要是在以上几个属性空缺时,就会体现其作用).具体如下: 关于scrollbar-track-color,scroll

八大Webkit内核浏览器

列举出时下最流行的Webkit内核浏览器,所以我们并不会做出评测和对比.PS:本文列举的浏览器有一部分为IE+Webkit双核浏览器,如果您对其他IE内核浏览器很感兴趣<抛弃数据!用体验和感觉告诉你什么才是最好用的浏览器!>一文可能会对你有所帮助.尖端技术的Webkit内核WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用).同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称

overflow滚动条样式设置,ie和webkit内核

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 7 <style> 8 body{ 9 /*ie下修改滚动条样式,在webkit内核浏览器无效*/ 10 /*scrollbar-arrow-color: #f4ae21;三角箭头的颜色

webkit内核浏览器的CSS写法

-webkit-tap-highlight-color: transparent; Mobile上点击链接高亮的时候设置颜色为透明 -webkit-user-select: none; 设置为无法选择文本 -webkit-touch-callout: none; 长按时不触发系统的菜单, 可用在图片上加这个属性禁止下载图片 :-webkit-full-screen canvas {} 全屏模式时的样式(for Desktop) div p :matches(em, b, strong) {} 使

webkit内核浏览器 手机端 滚动顿卡 处理方法 修改

今天遇到一个问题.因为之前也遇到过,解决了,但是一下子想不起来如何解决 所以,今天就把这个记录一下. 问题是这样: body下的一个容器 section 高度为100%  宽度为100% 即该 父类是和屏幕同宽同高的.但是 section 下的 子标签的 高度超过父标签 此时在手机端的滚动  有可能会滚动顿卡.这其实因为设备是没有启用弹性滚动,或者不支持弹性滚动. 测试一下 1 <!DOCTYPE html> 2 <html lang="en"> 3 <h