可能在UL左/右的CSS垂直滚动条填充?

san*_*aqu 29 css scrollbar

是否可以在滚动条项目或滚动条轨道周围添加填充或边距?我试过了,只能填充顶部/底部.向UL添加填充对滚动条没有影响.滚动条上的负边距无效.想法? JS小提琴在这里.

::-webkit-scrollbar {
width: 12px;
margin:10px;
}

::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
-webkit-border-radius: 10px;
border-radius: 10px;
padding: 10px
}

::-webkit-scrollbar-thumb {
-webkit-border-radius: 10px;
border-radius: 10px;
background: rgba(255,0,0,0.8); 
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); 
}
::-webkit-scrollbar-thumb:window-inactive {
background: rgba(255,0,0,0.4); 
Run Code Online (Sandbox Code Playgroud)

Bor*_*rat 66

你可以在那里看到一个例子(http://jsfiddle.net/6KprJ/1/),基本上忘记在那里添加边距或填充,只需增加滚动区域的宽度/高度,并减小拇指/轨道的宽度高度.

引用如何自定义自定义滚动?

::-webkit-scrollbar {
    width: 14px;
    height: 18px;
}
::-webkit-scrollbar-thumb {
    height: 6px;
    border: 4px solid rgba(0, 0, 0, 0);
    background-clip: padding-box;
    -webkit-border-radius: 7px;
    background-color: rgba(0, 0, 0, 0.15);
    -webkit-box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
}
::-webkit-scrollbar-button {
    width: 0;
    height: 0;
    display: none;
}
::-webkit-scrollbar-corner {
    background-color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

  • 对于任何想知道的人来说,这里的魔力是`background-clip:padding-box`,它会导致元素的边框被切掉(以及它下面的背景颜色),所以通过将边框设置为完全透明的颜色,它将导致填充效果与边框宽度匹配.没有该规则,通过边框可以看到背景颜色. (8认同)
  • 奇怪的是,当你想增加间隙、增加宽度并保留圆形边框时,这不起作用。有小费吗? (2认同)
  • 好吧,这更好一点:`::-webkit-scrollbar { width: 40px; } ::-webkit-scrollbar-thumb { 边框: 12px 实心 rgba(0, 0, 0, 0); 背景剪辑:填充框;-webkit边框半径:20px;背景颜色: rgba(0, 0, 0, 0.15);; }` 真正的耻辱是我无法添加顶部和底部边距。 (2认同)

Jor*_*els 8

我在滚动条拇指上使用 border-right 创建了一个 margin-right 效果:

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-thumb {
  background: red;
  border-right: 4px white solid;
  background-clip: padding-box;
}
Run Code Online (Sandbox Code Playgroud)

滚动条的宽度为 4px,边距右侧为 4px。

这里还有一个小提琴:https : //jsfiddle.net/4kgvL93h/3/

  • 此方法不支持边界半径。 (9认同)

Ash*_*wat 8

只需使用边距块

::-webkit-scrollbar-track {
   box-shadow: inset 0 0 5px F2F2F2; 
   border-radius: 0px;
   margin-block: 15px;
}
Run Code Online (Sandbox Code Playgroud)

::-webkit-scrollbar-track {
   box-shadow: inset 0 0 5px F2F2F2; 
   border-radius: 0px;
   margin-block: 15px;
}
Run Code Online (Sandbox Code Playgroud)
#container{
    height:400px;
    background-color:white;
    overflow-y:scroll;
    border-radius:25px;  
}

#content{
    height:700px;
    background-color:yellow;
    padding:25px;
}

::-webkit-scrollbar{
    width: 5px;
}
  
  /* Track */
::-webkit-scrollbar-track{
    box-shadow: inset 0 0 5px F2F2F2; 
    border-radius: 0px;
    margin-block: 25px;
}
   
  /* Handle */
::-webkit-scrollbar-thumb{
     background: #8B8B8B; 
     border-radius: 27px;
     border: 4px solid rgba(0, 0, 0, 0);
 }
Run Code Online (Sandbox Code Playgroud)


Usa*_*jid 7

可以给滚动条轨道添加边距;

#someID ::-webkit-scrollbar-track{
  border-radius: 15px;
   margin: 40px;
  box-shadow: inset 7px 10px 12px #f0f0f0;
  
 }
Run Code Online (Sandbox Code Playgroud)

  • 这似乎只适用于顶部和底部边距 (7认同)

Hen*_*wer 5

此解决方案在内容和滚动条之间留出真正的空间(如果可滚动元素没有透明背景)。对窗口滚动条很有用。

.scroll {overflow:auto;}
.scroll::-webkit-scrollbar {
    width:16px;
    height:16px;
    background:inherit;
}
.scroll::-webkit-scrollbar-track:vertical {
    border-right:8px solid rgba(0,0,0,.2);
}
.scroll::-webkit-scrollbar-thumb:vertical {
    border-right:8px solid rgba(255,255,255,.2);
}
.scroll::-webkit-scrollbar-track:horizontal {
    border-bottom:8px solid rgba(0,0,0,.2);
}
.scroll::-webkit-scrollbar-thumb:horizontal {
    border-bottom:8px solid rgba(255,255,255,.2);
}
.scroll::-webkit-scrollbar-corner,
    .scroll::-webkit-resizer {background:inherit;
    border-right:8px solid rgba(255,255,255,.2); //optional
    border-bottom:8px solid rgba(255,255,255,.2); //optional
}
Run Code Online (Sandbox Code Playgroud)