我使用以下代码使元素跨越页面的整个宽度,扩展到其父宽度的限制之外(在此CSS技巧文章中详细说明):
width: 100vw;
position: relative;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;
它在我的Macbook Pro (Chrome,Firefox,Safari)上的所有主要浏览器上运行得非常好,但是在Windows 10上的所有浏览器上,我的右边都出现了一个恼人的,非常小的溢出,创建了一个不需要的滚动条。
有人知道为什么这在这两个操作系统(浏览器不可知论)中表现得不同吗?这是相当令人沮丧的,我想了解它,并解决它的方法,而不是无趣地调整分数,百分比值等。
编辑:,看起来这是一个老问题,在具有可见垂直滚动条的浏览器上使用" vw“单元-- vw单元考虑了滚动条,从而产生了一些水平溢出。有一些解决办法,但不是简单的或理想的。似乎给出一个溢出-x:隐藏在你的html根目录是最简单的,虽然不一定是最负责任的方式来解决这个问题。其他解决方案包括Javascript和将滚动条的宽度保存到变量,并将其从100 to中用calc()排除。不太好!
发布于 2020-01-15 20:39:38
在不了解您发布的内容的情况下,这里有一个想法:如果存在垂直滚动条,100vw
wide元素将不适合浏览器窗口/导致水平滚动条,因为100 view将是视图端口的宽度,包括垂直滚动条所覆盖的空间,因此需要一个水平滚动条来查看垂直滚动条后面的部分。
因此,如果Windows机器上的视口/屏幕可能低于Mac,导致出现垂直滚动条,这就是水平滚动条出现的原因。
https://stackoverflow.com/questions/59759032
复制相似问题