与滚动条相关的属性
滚动条设置(overflow)
设置当一个元素的内容太大而无法适应 块级格式化上下文 时候该做什么。
可选值: visible
, hidden
, scroll
, auto
, overlay
特别的:
overlay
: 行为与auto相同,但滚动条绘制在内容之上而不是占用空间。仅在基于 WebKit(例如,Safari)和基于 Blink 的(例如,Chrome 或 Opera)浏览器中受支持。
滚动行为(scroll-behavior)
为一个滚动框指定滚动行为
- auto: 立即滚动
- smoot: 平滑滚动
滚动条样式(伪类选择器)
通过下面几个伪类选择器可以设置滚动条样式
::-webkit-scrollbar
——整个滚动条。::-webkit-scrollbar-thumb
——滚动条上的滚动滑块。::-webkit-scrollbar-track
——滚动条轨道。::-webkit-scrollbar-track-piece
——滚动条没有滑块的轨道部分。::-webkit-scrollbar-corner
——当同时有垂直滚动条和水平滚动条时交汇的部分。通常是浏览器窗口的右下角。::-webkit-scrollbar-button
——滚动条上两端的按钮(上下箭头)。::-webkit-resizer
——出现在某些元素底角的可拖动调整大小的滑块。
可用的属性
- width: 滚动条宽度
- height: 滚动条高度
- background-color: 滚动条背景色
- border: 滚动条边框
- border-radius: 滚动条圆角
例子
<head>
<style>
div::-webkit-scrollbar {
width: 17px;
height: 17px;
}
div::-webkit-scrollbar-button {
display: block;
width: 17px;
height: 17px;
}
div::-webkit-scrollbar-button:decrement:start {
background-color: lightblue;
border: 2px solid black;
}
div::-webkit-scrollbar-button:increment:start {
background-color: lightgreen;
border: 2px solid black;
}
div::-webkit-scrollbar-button:decrement:end {
background-color: orange;
border: 2px solid black;
}
div::-webkit-scrollbar-button:increment:end {
background-color: brown;
border: 2px solid black;
}
div::-webkit-scrollbar-thumb {
max-width: 10px;
max-height: 10px;
background-color: red;
border: 2px solid #cccccc;
}
div::-webkit-scrollbar-track-piece:decrement {
background-color: olive;
}
div::-webkit-scrollbar-track-piece:increment {
background-color: pink;
}
</style>
</head>
<body>
<div style="width:200px; height:200px; overflow-y:scroll; overflow-x:hidden">
Hello<br>
Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>
Hello<br>Hello<br>Hello<br>Hello<br>
Hello<br>Hello<br>Hello<br>Hello<br>
<span style="white-space:nowrap">Hello world this is a long string and will not wrap.</span>
Hello<br>Hello<br>Hello<br>Hello<br>
Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>
Hello<br>Hello<br>Hello<br>Hello<br>
Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>
Hello<br>Hello<br>Hello<br>Hello<br>
Hello<br>Hello<br>Hello<br>
</div>
<body>