【发布时间】:2011-05-02 11:30:30
【问题描述】:
是否可以增加位于<body> 内的<div> 元素的滚动条宽度?
我不是在谈论浏览器本身的默认滚动条,该页面以全屏模式运行,并且因为浏览器滚动条永远不会出现,内部<div> 元素有自己的滚动条.
【问题讨论】:
是否可以增加位于<body> 内的<div> 元素的滚动条宽度?
我不是在谈论浏览器本身的默认滚动条,该页面以全屏模式运行,并且因为浏览器滚动条永远不会出现,内部<div> 元素有自己的滚动条.
【问题讨论】:
这可以在仅使用 CSS 的基于 WebKit 的浏览器(例如 Chrome 和 Safari)中完成:
::-webkit-scrollbar {
width: 2em;
height: 2em
}
::-webkit-scrollbar-button {
background: #ccc
}
::-webkit-scrollbar-track-piece {
background: #888
}
::-webkit-scrollbar-thumb {
background: #eee
}
参考资料:
【讨论】:
如果您正在谈论自动出现在带有overflow: scroll(或auto)的div 上的滚动条,那么不,这仍然是浏览器使用普通操作系统小部件呈现的本机滚动条,而不是可以设置样式(*)。
虽然您可以按照 Matt 的建议将其替换为由可样式化的 div 和 JavaScript 制成的代理,但我不建议将其用于一般情况。脚本驱动的滚动条与真正的 OS 滚动条的行为并不完全相同,这会导致可用性和可访问性问题。
(*: 除了 IE 着色样式,我也不太推荐。除了仅限 IE 之外,使用它们会迫使 IE 从当前 Windows 主题中使用漂亮的滚动条图像退回到丑陋的旧 Win95 - 样式的滚动条。)
【讨论】:
您可以为 div 建立特定的工具栏
div::-webkit-scrollbar {
width: 12px;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
}
查看jsfiddle.net中的演示
【讨论】:
这会设置滚动条的宽度:
::-webkit-scrollbar {
width: 8px; // for vertical scroll bar
height: 8px; // for horizontal scroll bar
}
// for Firefox add this class as well
.thin_scroll{
scrollbar-width: thin; // auto | thin | none | <length>;
}
【讨论】:
是的。
如果滚动条不是浏览器滚动条,那么它将由常规 HTML 元素构建(可能是 divs 和 spans),因此可以设置样式(或者是 Flash、Java 等,并且可以是根据这些环境进行定制)。
具体取决于所使用的 DOM 结构。
【讨论】:
#whateverElementyouAreFakingTheScrollbarWith { width: <length> }
我尝试使用 CSS 来修改滚动条的经验是没有的。只有 IE 会让你这样做。
【讨论】:
::-webkit-scrollbar-[track|thumb|button|corner]