CSS ::-webkit-scrollbar 禁用双按钮

CSS ::-webkit-scrollbar Disable Double Button

当通过 ::-webkit-scrollbar 选择器为 CSS 中的滚动条使用自定义样式时,然后根据目标元素的 display 属性 获得一个single-buttondouble-button

请参阅下面的示例,其中显示了具有 display: flexdisplay: 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 

所以不要被包含这些内容的其他答案弄糊涂了。