使用大型显示器的人在任何页面上都不会看到滚动条。
使用小型显示器的人在所有页面上都会看到滚动条。
无论显示器大小,人们都可以自由地调整浏览器窗口大小并引起滚动条的出现。
哦,还有那些喜欢添加十几个浏览器工具栏插件的人,使浏览器窗口的内容区域只有可能是它本来高度的一半。
这就是事实,没有静态解决方案可以避免这种情况。更改一个页面的边距并不是一个解决办法,原因如上所述。
如果您坚持要修复某些人已经习惯了的问题,那么它将必须是一个“动态”的JavaScript解决方案,其中您需要计算左边距并添加滚动条的宽度。对于不同的浏览器,滚动条的宽度是不同的,因此您也需要进行计算。
编辑: 正如另一个答案中的某人所说,这是默认的浏览器行为,应该让它保持不变。
编辑2: 如用户dampe在评论中所说,您还需要在用户调整窗口大小后每次触发JavaScript。
这将是您浪费时间的一次史诗级事件。通常,浏览器的默认行为留给浏览器来处理。要考虑的变量太多了,如果没有测试每种情况、皮肤、操作系统、浏览器版本、浏览器品牌、工具栏插件、显示器类型、大小等等,您就有可能错过某些东西。一旦开始让它起作用,您会发现您需要为Explorer进行例外和更正。在您知道之前,您就会得到一个庞大的臃肿代码……而这样做的价值是什么?
起点:百分之百保证在所有浏览器和情况下都有预期的行为。
终点:只能保证在您的显示器/系统上看起来很棒...您将冒险在一个您甚至没有考虑过的系统/场景中看起来像垃圾。
首先搜索预制的JavaScript解决方案或jQuery插件...如果找不到,请问自己为什么?
编辑3:我进行了一些搜索以满足我的好奇心。我找到了一个带有jQuery解决方案的线程,以及计算滚动条宽度的方法链接。
在我看来,这是浪费时间和资源,但对于任何感兴趣的人,这是链接...
http://expressionengine.com/archived_forums/viewthread/158703/
编辑4:这是我找到的一种CSS解决方案。我没有测试过,但如果它有效的话,那就太棒了。
html {
overflow-y: scroll;
}
http://haslayout.net/css-tuts/Fixing-Page-Shift-Problem
编辑5:CSS解决方案可以使用,但不是我喜欢的方式。它会为每个页面创建滚动条,但当不需要时,它们会变灰或为空...不够优雅。