【发布时间】:2010-11-15 04:52:55
【问题描述】:
当用户访问网页时(当页面没有足够的内容来触发滚动条的激活时),需要什么 CSS 才能使浏览器的垂直滚动条保持可见?
【问题讨论】:
当用户访问网页时(当页面没有足够的内容来触发滚动条的激活时),需要什么 CSS 才能使浏览器的垂直滚动条保持可见?
【问题讨论】:
html {
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
这使滚动条始终可见,并且仅在需要时才处于活动状态。
更新:如果上述方法不起作用,则可以使用它。
html {
overflow-y:scroll;
}
【讨论】:
overflow-y吗?似乎 -moz-scrollbars-vertical 已被弃用,取而代之的是 overflow-y 属性。
html 有点hack-y的人,请注意,您可以使用结构伪选择器 :root 而不是 @987654329 @。见:developer.mozilla.org/en-US/docs/Web/CSS/:root
html { height:initial!important; }
您可能不需要 !important - 取决于使用的 CSS。
【讨论】:
我这样做:
html {
margin-left: calc(100vw - 100%);
margin-right: 0;
}
那我就不用在不需要的时候看丑陋的灰色滚动条了。
【讨论】:
body {
min-height: 101vh;
}
最适合我
【讨论】:
html {
overflow-y: scroll;
}
这是你想要的吗?
不幸的是,Opera 9.64 在应用于HTML 或BODY 时似乎忽略了该CSS 声明,尽管它适用于DIV 等其他块级元素。
【讨论】:
body { height:101%; } 将“裁剪”较大的页面。
相反,我使用:
body { min-height:101%; }
【讨论】:
确保溢出设置为“滚动”而不是“自动”。 话虽如此,在 OS X Lion 中,设置为“滚动”的溢出更像是自动滚动条,因为滚动条仍只会在使用时显示。因此,如果上述任何解决方案似乎都不起作用,那可能就是原因。
这是你需要解决的问题:
::-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;
另一种方法是将 html 元素的宽度设置为 100vw。在许多(如果不是大多数)浏览器上,这会抵消滚动条对宽度的影响。
html { width: 100vw; }
【讨论】:
过去几年情况发生了变化。上述答案不再适用于所有情况。苹果正在到处推disappearing scrollbars。 MacOs(和 iOs)上的 Safari、Chrome 甚至 Firefox 仅在实际滚动时显示滚动条——我不知道当前的 Windows/IE。然而,在 Webkit 上设置 scroll bars 的样式有一些非标准的方式(IE 很久以前就放弃了)。
【讨论】:
我可以通过将它添加到 body 标记来使其工作。对我来说更好,因为我在 html 元素上没有任何东西。
body {
overflow-y: scroll;
}
【讨论】:
html {height: 101%;}
我使用这个跨浏览器解决方案 (注意:我总是在第一行使用 DOCTYPE 声明,我不知道它是否适用于 quirksmode,从未测试过) .
这将在每个页面中始终显示一个 ACTIVE 垂直滚动条,垂直滚动条将只能滚动几个像素。
当页面内容比浏览器的可见区域(视口)短时,您仍然会看到垂直滚动条处于活动状态,并且只能滚动几个像素。
如果您沉迷于 CSS 验证(我只沉迷于 HTML 验证)通过使用此解决方案,您的 CSS 代码也将验证 W3C,因为您没有使用非标准 CSS 属性,如 -moz-scrollbars-vertical
【讨论】:
将高度设置为 101% 是我解决此问题的方法。 在超过视口高度和不超过视口高度的页面之间切换时,您的页面将不再“轻弹”。
【讨论】: