159 css macos webkit scrollbar blink
自10.7(Mac OS X Lion)以来MacOS上的WebKit/Blink(Safari/Chrome)默认行为是在不使用触控板用户时隐藏滚动条.这可能令人困惑 ; 滚动条通常是元素可滚动的唯一视觉提示.
<div class="frame">
Foo<br />
Bar<br />
Baz<br />
Help I'm trapped in an HTML factory!
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.frame {
overflow-y: auto;
border: 1px solid black;
height: 3em;
width: 10em;
line-height: 1em;
}?
Run Code Online (Sandbox Code Playgroud)
WebKit(Chrome)截图


如何强制滚动条始终显示在WebKit中的可滚动元素上?
小智 242
可以使用WebKit的-webkit-scrollbar伪元素 [ blog ]来控制滚动条的外观.您可以禁用通过设置默认的外观和行为-webkit-appearance [ 文件 ]来none.
因为您要删除默认样式,所以您还需要自己指定样式或滚动条永远不会显示.以下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;
}
Run Code Online (Sandbox Code Playgroud)
WebKit(Chrome)截图

Bla*_*ise 17
对于我在动态添加可滚动部分的单页Web应用程序,我通过以编程方式向下滚动并向上滚动一个像素来触发OSX的滚动条:
// Plain JS:
var el = document.getElementById('scrollable-section');
el.scrollTop = 1;
el.scrollTop = 0;
// jQuery:
$('#scrollable-section').scrollTop(1).scrollTop(0);
Run Code Online (Sandbox Code Playgroud)
这会触发视觉提示淡入淡出.
Ale*_*man 13
这是一段较短的代码,可以重新启用整个网站的滚动条.我不确定它是否与当前最受欢迎的答案有很大不同,但现在它是:
::-webkit-scrollbar {
-webkit-appearance: none;
width: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: rgba(0,0,0,.5);
box-shadow: 0 0 1px rgba(255,255,255,.5);
}
Run Code Online (Sandbox Code Playgroud)
在此链接中找到:http://simurai.com/blog/2011/07/26/webkit-scrollbar