css超出显示滚动条的三种方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
css超出显⽰滚动条的三种⽅法
⽅法1:计算滚动条宽度并隐藏起来
<div class="outer-container">
<div class="inner-container">
......
</div>
</div>
.outer-container{
width: 360px;
height: 200px;
position: relative;
overflow: hidden;
}
.inner-container{
position: absolute;
left: 0;
top: 0;
right: -17px;
bottom: 0;
overflow-x: hidden;
overflow-y: scroll;
}
注释:这个代码巧妙的向右移动了17个像素,刚好等于滚动条的宽度。
这个值是我⼿动调试得来的。
在chrome和IE没发现问题。
⽅法2:使⽤三个容器包围起来,不需要计算滚动条的宽度
这个⽅法相对于⽅法1多加了⼀个盒⼦,将内容限制在盒⼦⾥⾯了,这样就看不到滚动条的同时也可以滚动。
<div class="outer-container">
<div class="inner-container">
<div class="content">
......
</div>
</div>
</div>
.element, .outer-container {
width: 200px;
height: 200px;
}
.outer-container {
border: 5px solid purple;
position: relative;
overflow: hidden;
}
.inner-container {
position: absolute;
left: 0;
overflow-x: hidden;
overflow-y: scroll;
}
.inner-container::-webkit-scrollbar {
display: none;
}
⽅法3:⾃定义滚动条的伪对象选择器::webkit-scrollbar
这种⽅法不兼容IE,做移动端的可以使⽤。
.element::-webkit-scrollbar { width: 0 !important }
IE 10+
.element { -ms-overflow-style: none; }
Firefox
.element { overflow: -moz-scrollbars-none; }
详情:
以下为⾃定义webkit滚动条样式
使⽤⾕歌Chrome浏览器的最新版本,滚动条样式已经是⾮常漂亮了。
这个webkit-scrollbar仅适⽤于webkit内核。
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 */ }
使⽤实例
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
background-color: #eaeaea;
border-left: 1px solid #ccc;
}
::-webkit-scrollbar-thumb {
background-color: #ccc;
}
::-webkit-scrollbar-thumb:hover {
background-color: #aaa;
}
::-webkit-scrollbar-thumb:active{
background-color:#333;
}
不同状态
: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 { /*当⿏标在⽔平滚动条下⾯的按钮上的状态*/
}。