CSS ::-webkit-scrollbar 禁用双按钮
CSS ::-webkit-scrollbar Disable Double Button
当通过 ::-webkit-scrollbar
选择器为 CSS 中的滚动条使用自定义样式时,然后根据目标元素的 display
属性 获得一个single-button
或 double-button
。
请参阅下面的示例,其中显示了具有 display: flex
和 display: block
的元素的不同行为。
body
{
background: #111;
color: white;
}
.wrapper
{
height: 150px;
overflow-y: scroll;
background: #333;
display: flex;
padding: 10px;
}
.wrapper > div
{
height: 300px;
}
.custom-scrollbar::-webkit-scrollbar
{
width: 16px;
height: 16px;
}
.custom-scrollbar::-webkit-scrollbar-track-piece
{
background-color: #444;
}
.custom-scrollbar::-webkit-scrollbar-thumb
{
background: #555;
}
.custom-scrollbar::-webkit-scrollbar-button
{
background: #666;
}
.custom-scrollbar::-webkit-scrollbar-button:vertical:decrement,
.custom-scrollbar::-webkit-scrollbar-button:vertical:increment,
.custom-scrollbar::-webkit-scrollbar-button:horizontal:decrement,
.custom-scrollbar::-webkit-scrollbar-button:horizontal:increment
{
border: 1px solid #000;
}
.custom-scrollbar::-webkit-scrollbar-button:single-button:vertical:decrement,
.custom-scrollbar::-webkit-scrollbar-button:single-button:vertical:increment,
.custom-scrollbar::-webkit-scrollbar-button:single-button:horizontal:decrement,
.custom-scrollbar::-webkit-scrollbar-button:single-button:horizontal:increment
{
background: #AAA
}
Device: Win10
<br />
Browser: Chrome
<br />
Goal: Custom styled scrollbar without the "double button", regardless of the display property.
<br />
<strong>Question</strong>: How to disable the "double button" completely?
<br />
<br />
<div style="display: flex">
<div style="width: 30%">
<div class="custom-scrollbar wrapper">
<div>
display: flex
<br />
scrollbar: custom
<br />
double-button: visible (= BAD)
</div>
</div>
</div>
<div style="width: 5%">
</div>
<div style="width: 30%">
<div class="custom-scrollbar wrapper" style="display: block">
<div>
display: block
<br />
scrollbar: custom
<br />
double-button: not visible (= GOOD)
</div>
</div>
</div>
</div>
<br />
<br />
<div style="display: flex">
<div style="width: 30%">
<div class="wrapper">
<div>
display: flex
<br />
scrollbar: default
<br />
double-button: not visible (= GOOD)
</div>
</div>
</div>
<div style="width: 5%">
</div>
<div style="width: 30%">
<div class="wrapper" style="display: block">
<div>
display: block
<br />
scrollbar: default
<br />
double-button: not visible (= GOOD)
</div>
</div>
</div>
</div>
CodePen link: https://codepen.io/Acmion/pen/VweKxZa
如何完全禁用 double-button
?
要禁用 double-button
使用:
::-webkit-scrollbar-button:vertical:start:increment,
::-webkit-scrollbar-button:vertical:end:decrement,
::-webkit-scrollbar-button:horizontal:end:increment,
::-webkit-scrollbar-button:horizontal:end:decrement
{
display: none;
}
要去掉双按钮,使用这个:
::-webkit-scrollbar-button:vertical:start:increment,
::-webkit-scrollbar-button:vertical:end:decrement,
::-webkit-scrollbar-button:horizontal:start:increment,
::-webkit-scrollbar-button:horizontal:end:decrement
{
display: none;
}
请注意,在这种情况下,我们不需要触及其他四个类似的伪选择器:
::-webkit-scrollbar-button:vertical:start:decrement,
::-webkit-scrollbar-button:vertical:end:increment,
::-webkit-scrollbar-button:horizontal:start:decrement,
::-webkit-scrollbar-button:horizontal:end:increment
所以不要被包含这些内容的其他答案弄糊涂了。
当通过 ::-webkit-scrollbar
选择器为 CSS 中的滚动条使用自定义样式时,然后根据目标元素的 display
属性 获得一个single-button
或 double-button
。
请参阅下面的示例,其中显示了具有 display: flex
和 display: block
的元素的不同行为。
body
{
background: #111;
color: white;
}
.wrapper
{
height: 150px;
overflow-y: scroll;
background: #333;
display: flex;
padding: 10px;
}
.wrapper > div
{
height: 300px;
}
.custom-scrollbar::-webkit-scrollbar
{
width: 16px;
height: 16px;
}
.custom-scrollbar::-webkit-scrollbar-track-piece
{
background-color: #444;
}
.custom-scrollbar::-webkit-scrollbar-thumb
{
background: #555;
}
.custom-scrollbar::-webkit-scrollbar-button
{
background: #666;
}
.custom-scrollbar::-webkit-scrollbar-button:vertical:decrement,
.custom-scrollbar::-webkit-scrollbar-button:vertical:increment,
.custom-scrollbar::-webkit-scrollbar-button:horizontal:decrement,
.custom-scrollbar::-webkit-scrollbar-button:horizontal:increment
{
border: 1px solid #000;
}
.custom-scrollbar::-webkit-scrollbar-button:single-button:vertical:decrement,
.custom-scrollbar::-webkit-scrollbar-button:single-button:vertical:increment,
.custom-scrollbar::-webkit-scrollbar-button:single-button:horizontal:decrement,
.custom-scrollbar::-webkit-scrollbar-button:single-button:horizontal:increment
{
background: #AAA
}
Device: Win10
<br />
Browser: Chrome
<br />
Goal: Custom styled scrollbar without the "double button", regardless of the display property.
<br />
<strong>Question</strong>: How to disable the "double button" completely?
<br />
<br />
<div style="display: flex">
<div style="width: 30%">
<div class="custom-scrollbar wrapper">
<div>
display: flex
<br />
scrollbar: custom
<br />
double-button: visible (= BAD)
</div>
</div>
</div>
<div style="width: 5%">
</div>
<div style="width: 30%">
<div class="custom-scrollbar wrapper" style="display: block">
<div>
display: block
<br />
scrollbar: custom
<br />
double-button: not visible (= GOOD)
</div>
</div>
</div>
</div>
<br />
<br />
<div style="display: flex">
<div style="width: 30%">
<div class="wrapper">
<div>
display: flex
<br />
scrollbar: default
<br />
double-button: not visible (= GOOD)
</div>
</div>
</div>
<div style="width: 5%">
</div>
<div style="width: 30%">
<div class="wrapper" style="display: block">
<div>
display: block
<br />
scrollbar: default
<br />
double-button: not visible (= GOOD)
</div>
</div>
</div>
</div>
CodePen link: https://codepen.io/Acmion/pen/VweKxZa
如何完全禁用 double-button
?
要禁用 double-button
使用:
::-webkit-scrollbar-button:vertical:start:increment,
::-webkit-scrollbar-button:vertical:end:decrement,
::-webkit-scrollbar-button:horizontal:end:increment,
::-webkit-scrollbar-button:horizontal:end:decrement
{
display: none;
}
要去掉双按钮,使用这个:
::-webkit-scrollbar-button:vertical:start:increment,
::-webkit-scrollbar-button:vertical:end:decrement,
::-webkit-scrollbar-button:horizontal:start:increment,
::-webkit-scrollbar-button:horizontal:end:decrement
{
display: none;
}
请注意,在这种情况下,我们不需要触及其他四个类似的伪选择器:
::-webkit-scrollbar-button:vertical:start:decrement,
::-webkit-scrollbar-button:vertical:end:increment,
::-webkit-scrollbar-button:horizontal:start:decrement,
::-webkit-scrollbar-button:horizontal:end:increment
所以不要被包含这些内容的其他答案弄糊涂了。