我想用CSS自定义滚动条。
我使用此WebKit CSS代码,该代码非常适合Safari和Chrome:
::-webkit-scrollbar { width: 15px; height: 15px; } ::-webkit-scrollbar-track-piece { background-color: #C2D2E4; } ::-webkit-scrollbar-thumb:vertical { height: 30px; background-color: #0A4C95; }
如何在Firefox中执行相同的操作?
我知道我可以使用jQuery轻松地做到这一点,但如果可行,我宁愿使用纯CSS做到这一点。
将不胜感激某人的专家意见!
Firefox 64添加了对规范草案CSS滚动条模块级别1的支持,该模块添加了的两个新属性,scrollbar-width并scrollbar-color提供了一些如何显示滚动条的控制。
scrollbar-width
scrollbar-color
您可以设置scrollbar-color为以下值之一(来自MDN的描述):
auto
dark
light
<color> ``<color>
macOS注意事项:
macOS默认的自动隐藏半透明滚动条无法使用此规则着色(它们仍然根据背景选择自己的对比色)。仅永久显示的滚动条(系统偏好设置>显示滚动条>始终)是彩色的。
视觉演示:
.scroll { width: 20%; height: 100px; border: 1px solid grey; overflow: scroll; display: inline-block; } .scroll-color-auto { scrollbar-color: auto; } .scroll-color-dark { scrollbar-color: dark; } .scroll-color-light { scrollbar-color: light; } .scroll-color-colors { scrollbar-color: orange lightyellow; }
<div class="scroll scroll-color-auto"> <p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p> </div> <div class="scroll scroll-color-dark"> <p>dark</p><p>dark</p><p>dark</p><p>dark</p><p>dark</p><p>dark</p> </div> <div class="scroll scroll-color-light"> <p>light</p><p>light</p><p>light</p><p>light</p><p>light</p><p>light</p> </div> <div class="scroll scroll-color-colors"> <p>colors</p><p>colors</p><p>colors</p><p>colors</p><p>colors</p><p>colors</p> </div>
您可以设置scrollbar-width为以下值之一(来自MDN的描述):
thin
none
Firefox
think
可能值得注意的是,将scrollbar-width在将来的草案中考虑删除length值选项和整个属性,如果发生这种情况,则可以在将来的版本中从Firefox中删除此特定属性。
.scroll { width: 30%; height: 100px; border: 1px solid grey; overflow: scroll; display: inline-block; } .scroll-width-auto { scrollbar-width: auto; } .scroll-width-thin { scrollbar-width: thin; } .scroll-width-none { scrollbar-width: none; }
<div class="scroll scroll-width-auto"> <p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p> </div> <div class="scroll scroll-width-thin"> <p>thin</p><p>thin</p><p>thin</p><p>thin</p><p>thin</p><p>thin</p> </div> <div class="scroll scroll-width-none"> <p>none</p><p>none</p><p>none</p><p>none</p><p>none</p><p>none</p> </div>