我有一个小问题,试图保持我的。html页面在Chrome上的宽度一致。

例如,我有一个页面(1),其中有很多内容超出了视口的高度,因此该页面(1)上有一个垂直滚动条。在页面(2)上,我有相同的布局(菜单,div,…等),但内容更少,所以没有垂直滚动条。

问题在于,在第(1)页上,滚动条似乎将元素稍微推到左边(增加宽度?),而在第(2)页上,所有内容似乎都处于正中央。

我仍然是HTML/CSS/JS的初学者,我相信这并不难,但我没有运气找到解决方案。它在IE10和FireFox(无干扰滚动条)上都能正常工作,我只在Chrome上遇到过。


当前回答

如果你有一些容器,你正在使用作为包装你的网站内容,比如导航和页脚,你可以添加以下内容:

min-height: 101vh;

这将“延长”你的页面1vh,以确保滚动条永远不会消失,宽度保持不变。

其他回答

如果你有一些容器,你正在使用作为包装你的网站内容,比如导航和页脚,你可以添加以下内容:

min-height: 101vh;

这将“延长”你的页面1vh,以确保滚动条永远不会消失,宽度保持不变。

编辑:这个答案目前还不太正确,请参考我的另一个答案,看看我在这里试图做什么。我正在努力解决它,但如果你能提供帮助,请在评论中这样做,谢谢!

使用右填充将减轻滚动条的突然出现

例子

从点状图中可以看出,无论滚动条是否存在,文本在换行前都会到达页面中的同一点。 这是因为当滚动条被引入时,填充隐藏在它后面,所以滚动条不会推送文本!

免责声明:覆盖已弃用。 你仍然可以使用它,如果你绝对必须,但尽量不要这样做。

这只适用于WebKit浏览器,但我非常喜欢它。 将在其他浏览器中表现为auto。

.yourContent{
   overflow-y: overlay;
}

这将使滚动条只显示为覆盖层,从而不影响元素的宽度!

可能

html {
    width: 100vw;
}

正是你想要的。

.modal-dialog {
   position: absolute;
   left: calc(50vw - 300px);
}

300px是对话框窗口宽度的一半。

这是唯一对我有效的方法。