html - 防止居中布局在出现滚动条时移动其位置

标签 html css scroll

我的页面布局看起来 something like this :

<style type="text/css">
#content-wrap
{
    margin: 0 auto;
    width: 800px;
}
</style>

<div id="content-wrap">
</div>

您会注意到,当垂直滚动条出现时,content-wrap div 稍微移动了它的位置。一种情况是当浏览器开始逐步呈现页面而不显示垂直滚动条时,然后确定需要滚动条,因为内容高于“折叠”。这会将 div 向左移动大约 10px。

不强制浏览器始终显示滚动条的情况下,解决此问题的最佳方法是什么?

最佳答案

恐怕解决此问题的最佳方法是使用 html {overflow-y: scroll;} 强制滚动条始终可见。您遇到的问题是,当滚动条出现时,“可用区域”缩小了 10 像素。这会导致左侧的计算边距缩小滚动条宽度的一半,从而将居中的内容稍微向左移动。

一个可能的解决方案可能是用 JavaScript 计算边距而不是使用 margin: 0 auto; 并以某种方式补偿滚动条出现时“丢失”的像素,但我担心它会很乱,并且在您计算和应用新边距时内容可能会移动一点。

关于html - 防止居中布局在出现滚动条时移动其位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9341465/

相关文章:

c# - 如何在 Picturebox 上获得滚动条

jquery - 如何在 Slider div 中添加不同的颜色

html - 为什么在清除 :both is mentioned? 时 float 命令起作用

javascript - 我的 Javascript 仅适用于 Django 2 中嵌入 for 循环的 python 中的一个元素

javascript - 包含文件时发生冲突

javascript - 如何为线条设置动画以跟踪移动的 CSS 元素?

javascript - 为什么不能触发窗口滚动事件

angularjs - 如何从底部开始滚动列表?

javascript - 如何在 javascript 页面上单击带有 selenium 的按钮

html - Bootstrap 3 中 Youtube (Iframe) 左右两侧的响应式图片