我的页面布局看起来像这样:
<style type="text/css"> #content-wrap { margin: 0 auto; width: 800px; } </style> <div id="content-wrap"> </div>
您会注意到,当垂直滚动条出现时,content-wrapdiv会稍稍移动其位置。一种情况是浏览器开始逐渐呈现页面而不显示垂直滚动条,然后确定需要滚动条,因为内容比“折叠”高。这会将div向左移动约10像素。
在 不强制浏览器始终显示滚动条的情况下 解决此问题的最佳方法是什么 ?
恐怕解决此问题的最佳方法是使用强制滚动条始终可见html{overflow-y:scroll;}。您遇到的问题是,出现滚动条时,“可用区域”会缩小10像素。这会导致左侧计算出的边距缩小到滚动条宽度的一半,从而使居中内容向左移动一些。
html{overflow-y:scroll;}
可能的解决方案可能是使用JavaScript而不是使用计算边距,margin: 0 auto;并在滚动条出现时以某种方式补偿“丢失”的像素,但恐怕会很混乱,并且在您浏览内容时,内容可能会有所移动计算并应用新的保证金。
margin: 0 auto;