问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用css控制浏览器滚动条

发布网友 发布时间:2022-04-23 02:09

我来回答

4个回答

懂视网 时间:2022-04-06 15:05

滚动条在网页中经常见到,却并没有受到足够的重视。只有当因为滚动条的问题需要处理兼容性时,才进行调试操作。本章就给大家带来css滚动条的常见内容。

一:条件
  滚动条和overflow是紧密相关的。只有当父级的overflow的值是auto或scroll,并且元素的内容超出元素区域时,才有可能出现滚动条

2.jpg

二:默认

  无论什么浏览器,默认滚动条均来自<html>,而不是<body>。因为<body>元素默认有8px的margin。若滚动条来自<body>元素,则滚动条与页面则应该有8px的间距,实际上并没有间距,所以滚动条来自<html>元素

三:尺寸

  通过以下代码可得出滚动条会占用浏览器的可用宽度为:

chrome/firefox/IE 17px
safari 21px
.box{
 width: 400px;
 overflow: scroll;
}
.in{
 *zoom: 1;
}
<div class="box">
 <div id="in" class="in"></div>
</div>
console.log(400-document.getElementById('in').clientWidth);

兼容

【1】默认情况下IE7-浏览器默认有一条纵向滚动条,而其他浏览器则没有

//IE7-浏览器 
html{overflow-y: scroll;}
//其他浏览器
html{overflow: auto;}
//去除页面默认滚动条
html{overflow: hidden;}

【2】IE7-浏览器与其他浏览器关于滚动条的宽度设定机制不同

.box{
 width: 200px;
 height: 100px;
 background-color: pink;
 overflow: scroll;
}
.in{
 width: 100%;
 height: 60px;
 background-color: lightgreen;
}
<div class="box">
 <div class="in">测试文字</div>
 </div>

父级box出现纵向滚动条,实际上子级in的可用宽度就缩小了。IE7-浏览器的子级宽度忽略了该滚动条的宽度,子级宽度=400*100%=400px,则出现了横向滚动条;而其他浏览器的子级宽度考虑到该滚动条的宽度,子级宽度=(400-滚动条宽度)*100%

左边为IE7-浏览器,右边为其他浏览器

3.jpg

【3】水平居中跳动问题

  当一个元素在页面中水平居中时,页面中出现纵向滚动条会发生水平居中的跳出问题。解决方法如下:

//IE8-默认
html{overflow-y: scroll}//IE9+,100vw表示浏览器的宽度,100%表示可用内容的宽度
.container{padding-left: calc(100vw-100%)}

自定义

【1】IE

  IE浏览器支持通过CSS样式来改变滚动条的部件的自定义颜色

scrollbar-face-color 滚动条凸出部分的颜色
scrollbar-shadow-color 立体滚动条阴影的颜色
scrollbar-highlight-color 滚动条空白部分的颜色
scrollbar-3dlight-color 滚动条亮边的颜色
scrollbar-darkshadow-color 滚动条强阴影的颜色
scrollbar-track-color 滚动条的背景颜色 
scrollbar-arrow-color 上下按钮上三角箭头的颜色 
scrollbar-base-color 滚动条的基本颜色

4.jpg

【2】webkit

  webkit内核的浏览器支持滚动条自定义样式,但和IE不同,webkit是通过伪类来实现的组成

::-webkit-scrollbar 滚动条整体部分
::-webkit-scrollbar-thumb 滚动滑块
::-webkit-scrollbar-track 外层轨道
::-webkit-scrollbar-track-piece 内层轨道
::-webkit-scrollbar-corner 边角
::-webkit-scrollbar-button 两端按钮

[注意]当为滚动条设置宽高样式为百分比值时,是相对视窗大小来说的

5.jpg

[注意]滚动条的层叠关系为scrollbar在最底层,往上依次是track外层轨道,track-piece内层轨道。而button按钮、corner边角和thumb滑块有最顶层

四:伪类相关

:horizontal
//horizontal伪类适用于任何水平方向上的滚动条

:vertical
//vertical伪类适用于任何垂直方向的滚动条

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

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

:start
//start伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的前面

:end
//end伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的后面

:double-button
//double-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。

:single-button
//single-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。

:no-button
no-button伪类表示轨道结束的位置没有按钮。

:corner-present
//corner-present伪类表示滚动条的角落是否存在。

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

::-webkit-scrollbar-track-piece:start {
/*滚动条上半边或左半边*/
}

::-webkit-scrollbar-thumb:window-inactive {
/*当焦点不在当前区域滑块的状态*/
}

::-webkit-scrollbar-button:horizontal:decrement:hover {
/*当鼠标在水平滚动条下面的按钮上的状态*/
}

热心网友 时间:2022-04-06 12:13

用CSS控制滚动条样式
1,Overflow内容溢出时的设置
overflow 水平及垂直方向内容溢出时的设置
overflow-x 水平方向内容溢出时的设置
overflow-y 垂直方向内容溢出时的设置
以上三个属性设置的值为visible、scroll、hidden、auto
visible 默认值。使用该值时,无论设置的"width"和"height"的值是多少,其中的内容无论是否超出范围都将被强制显示。
hidden 效果与visible相反。任何超出"width"和"height"的内容都会不可见。
scroll 无论内容是否超越范围,都将显示滚动条。 auto 当内容超出范围时,显示滚动条,否则不显示。
应用:
没有水平滚动条:
<div style="overflow-x:hidden">test</div>
没有垂直滚动条 :
<div style="overflow-y:hidden">test</div>
没有滚动条 :
<div style="overflow-x:hidden;overflow-y:hidden" 或
style="overflow:hidden">test</div>
自动显示滚动条:
<div style="height:100px;width:100px;overflow:auto;">test</div>
2,自己定义滚动条的颜色
我们一般默认的滚动条样式如下左图,右图是放大了1600倍的样子,我们可以看到滚动条有几种言责组合的,我给他们标了7个号,分别注释在下面的css代码的后面了,注意css的注释代码是放在两个斜杠内的两个星号之间,如:/*这里放注释的代码*/
Body {
scrollbar-arrow-color: #f4ae21; /*图6,三角箭头的颜色*/
scrollbar-face-color: #333; /*图5,立体滚动条的颜色*/
scrollbar-3dlight-color: #666; /*图1,立体滚动条亮边的颜色*/
scrollbar-highlight-color: #666; /*图2,滚动条空白部分的颜色*/
scrollbar-shadow-color: #999; /*图3,立体滚动条阴影的颜色*/
scrollbar-darkshadow-color: #666; /*图4,立体滚动条强阴影的颜色*/
scrollbar-track-color: #666; /*图7,立体滚动条背景颜色*/
scrollbar-base-color:#f8f8f8; /*滚动条的基本颜色*/
Cursor:url(mouse.cur); /*自定义个性鼠标*/}
以上2项适用与<body>、<div>、<textarea>、<iframe>

热心网友 时间:2022-04-06 13:31

具体自己去更改样式会比较麻烦。你可以在网上搜一下jQuery插件。写好的直接套用就可以了。在百度搜索关键词“jquery控制滚动条样式”出来一大片。自己选择吧。

热心网友 时间:2022-04-06 15:06

为什么要控制滚动条,让其显示和不显示?还是设置样式
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我女儿是2012年2月14日,阴历正月二十三下午5点11分出生的,求一个好听... 起名。女孩2012年农历十月二十一晚上二十三点五十分出生本人姓胡_百度... 2012年农历九月二十三凌晨两点三十五出生的女孩按五行属象怎么取名... 2012年农历九月初十 二十三点三十六出生的男孩 五行缺什么 任姓 取什 ... 高一地理关于地转偏向力的问题 ...介绍_油管主播的生活双层楼阶段怎么发展是什么 油管主播的生活怎么增进NPC关系介绍_油管主播的生活怎么增进NPC关系是... ...介绍_油管主播的生活如何搬进大厦攻略详解是什么 ...对话框:无法访问,由于I/O设备错误,无法运行此项请求 关于移动硬盘i/o错误 电脑卡无响应是什么问题 如何用css样式控制滚动条的颜色? 笔记本电脑如何删除桌面上的图标? 怎么样在div+css中设置一个div的框并出现滚动条 为什么电脑总是未响应啊?? 页面如何自动出现滚动条(overflow属性用法) js的window.scroll怎么用 桌面快捷图标怎么删除!!! CSS 设置的高度超出屏幕高度为什么没出现滚动条 梦到家里办丧事好不好? 电脑未响应什么原因? 怎么删除电脑桌面上的快捷方式? css 怎样设置总是显示竖滚动条 电脑经常未响应怎么办? 淘宝买家收到货不付款怎么办?催买家确认收货技巧( 在手机html页面中,子盒子设置 overflow-y:scroll 会触发body滚动_百度... 笔记本电脑怎么删除桌面图标? 怎么用css控制滚动条 只 显示右边的 不显示下边的滚动条 淘宝购物用怎样的话术催款 有关窗口滚动条的操作 如何清除电脑桌面上的图标? 昨晚梦见家里办丧事但又不知道是为谁办的? 如何判断scrollview滑动到了最顶部 电脑没有响应 怎样删除电脑桌面快捷图标 在script标签中放html代码,当滚动出现到屏幕的时候在去讲html代码取出来... 梦见有家人办丧事,我从那里经过,然后躺到床上睡觉,醒来感觉这不是自己... 电脑为什么老是未响应 css中:overflow-y默认样式可以修改吗?怎么修改 梦见家里办丧事是什么预兆? 怎样才能卸载掉电脑桌面上的快捷图标 jquery 广告,上下左右满屏移来移去,遇到窗口边缘就会相反移动(一个浮动... 梦见亲人去办丧事 电脑桌面的快捷图标可以删掉吗 同时梦见自己办喜事和家里办丧事是怎么回事? 梦见别人家办丧事,是怎么回事? 怎么能把qq自定义封面删了2022? 新版qq的自定义封面(自己相册里的图)怎么取消?点了封面只有这些选项 qq怎么删除自定义封面图片8.2.6? QQ怎么取消自定义封面让别人看见个性主题?