在用户访问网页时(当页面内容不足以触发滚动条激活时),需要哪些CSS才能使浏览器的垂直滚动条保持可见?
html {
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
这将使滚动条始终可见,并且仅在需要时才处于活动状态。
更新:如果上述方法不起作用,那么只使用这个可能会奏效。
html {
overflow-y:scroll;
}
overflow-y
吗?因为似乎-moz-scrollbars-vertical
已经被弃用,推荐使用overflow-y
属性。 - Ionuț G. Stanhtml
有点 hack-y 的人,请注意您可以使用结构伪选择器 :root
来代替 html
。请参见:https://developer.mozilla.org/en-US/docs/Web/CSS/:root - Rounin请确保overflow属性设置为"scroll"而非"auto"。话虽如此,在OS X Lion中,设置为"scroll"的overflow属性的行为更像是"auto",即只有在使用滚动条时才会显示。所以,如果上述解决方案似乎没有起作用,那可能是原因所在。
以下是需要修复它的内容:
::-webkit-scrollbar {
-webkit-appearance: none;
width: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: rgba(0, 0, 0, .5);
-webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}
如果您不喜欢默认样式,可以相应地进行样式设置。
-webkit-appearance: none;
? - Suraj Jainoverflow-y:scroll;
是无效的。 - Mote Zart在过去的几年里,情况已经发生了变化。上面的答案已经不再适用于所有情况。苹果正在推广到处都有的隐藏滚动条 (disappearing scrollbars)。在MacOS(和iOS)上,Safari、Chrome 甚至是Firefox只有在实际滚动时才显示滚动条——我不知道当前 Windows/IE 的情况。然而,在Webkit中有非标准的方法来样式化滚动条 (IE 已经很久以前放弃了这种方法)。
html {
overflow-y: scroll;
}
这是你想要的吗?
不幸的是,Opera 9.64似乎忽略了应用于HTML
或BODY
时的CSS声明,尽管它适用于其他块级元素如DIV
。
body { height:101%; }
会“裁剪”更大的页面。
相反,我使用:
body { min-height:101%; }
html {height: 101%;}
我使用这个跨浏览器的解决方案(注意:我总是在第一行使用DOCTYPE声明,我不知道它是否适用于怪异模式,从未测试过)。
这将始终显示一个活动的垂直滚动条,垂直滚动条只能滚动几个像素。
当页面内容较短时,仍然会看到垂直滚动条处于激活状态,并且它只能滚动几个像素。
如果您追求CSS验证(我只追求HTML验证),通过使用此解决方案,您的CSS代码也将符合W3C标准,因为您没有使用非标准的CSS属性,如-moz-scrollbars-vertical
。
另一种方法是将html元素的宽度设置为100vw。在许多浏览器上,这可以抵消滚动条对宽度的影响。
html { width: 100vw; }
body {
overflow-y: scroll;
}
html { height:initial!important; }
body {
min-height: 101vh;
}
这对我来说效果最佳