WebKit/Blink's (Safari/Chrome) default behaviour on MacOS since 10.7 (Mac OS X Lion) is to hide scroll bars from trackpad users when they're not in use. This can be confusing; the scroll bar is often the only visual cue that an element is scrollable.

Example (jsfiddle)

HTML
<div class="frame">
    Foo<br />
    Bar<br />
    Baz<br />
    Help I'm trapped in an HTML factory! 
</div>
CSS
.frame {
    overflow-y: auto;
    border: 1px solid black;
    height: 3em;
    width: 10em;
    line-height: 1em;
}​
WebKit (Chrome) Screenshot

Presto (Opera) Screenshot

screenshot of a div with a visible scroll bar


如何强制滚动条始终显示在WebKit中的可滚动元素上?

推荐答案

滚动条的外观可以用WebKit的-webkit-scrollbar个伪元素[blog]控制.您可以通过将-webkit-appearance[docs]设置为none来禁用默认外观和行为.

因为您要删除默认样式,所以您还需要自己指定样式,否则滚动条将永远不会显示.以下CSS重新创建隐藏滚动条的外观:

Example (jsfiddle)

CSS
.frame::-webkit-scrollbar {
    -webkit-appearance: none;
}

.frame::-webkit-scrollbar:vertical {
    width: 11px;
}

.frame::-webkit-scrollbar:horizontal {
    height: 11px;
}

.frame::-webkit-scrollbar-thumb {
    border-radius: 8px;
    border: 2px solid white; /* should match background, can't be transparent */
    background-color: rgba(0, 0, 0, .5);
}

.frame::-webkit-scrollbar-track { 
    background-color: #fff; 
    border-radius: 8px; 
} 
WebKit (Chrome) Screenshot

screenshot showing webkit's scrollbar, without needing to hover

Css相关问答推荐

如何允许在bslb中 Select 输入重叠卡片?

如何在页面顶部创建固定横幅,并在其下方设置滚动条?

Astro网站在使用Astro Build构建后无法正常工作

如何使我的标语(h1元素)不居中对齐?

应用填充时边框无法正常工作

如何在 Tailwind 中使用 `margin: y x;` 速记?

如何添加一个类以在开始时触发转换

Sass @use 排序

使用 node-sass 在压缩文件末尾添加 min.css 文件扩展名

css - 悬停访问的链接没有背景 colored颜色

循环一个 sass/scss 变量以生成 css 变量

如何为使用jsTreeR拖入层次 struct node 的元素添加顺序编号?

在表格中隐藏绝对伪元素

如何通过单击
  • 激活 HTML 链接?
  • 如何使多个 div 显示在一行中但仍保留宽度?

    如何在 CSS 中绘制一个圆形扇区?

    如何计算所需的色调旋转以生成特定 colored颜色 ?

    如何在 React 应用程序中使用 CSS 模块应用全局样式?

    CSS关键帧动画CPU占用率高,应该这样吗?

    background-position-x (background-position-y) 是标准的 W3C CSS 属性吗?