【发布时间】:2019-03-21 02:39:35
【问题描述】:
我们试图为我们的内容设置一个覆盖整个视口的固定背景图像(就像内容漂浮在上面的墙纸一样)。这是我一直用来完成此操作的代码:
<html>
<head>
<meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1">
</head>
<body>
<div>
</div>
<style>
div {
height: 150vh;
background: url(https://www.google.com/logos/doodles/2019/spring-equinox-2019-northern-hemisphere-5139135894388736.3-l.png) no-repeat center fixed;
background-size: cover;
}
</style>
</body>
</html>
您也可以在这里查看:http://neonorb.com/background-test.html
在桌面 Chromium 和 Firefox 以及移动 Firefox 上,它的行为符合我的预期。也就是说,容器是 150vh,您可以在背景图像保持静止的同时滚动。
但是,如果您在移动 Chrome 中查看它,图像会占据其容器的整个高度(即 150vh)并且实际上是滚动的并且不是固定的。
这是移动 Chrome 中的错误吗?还是这种行为实际上是正确的,并且该错误实际上存在于桌面 Chromium 和两个 Firefox 中?还是我做错了什么?
编辑:
对background-size:cover; 的行为进行一些研究...它说cover 仅涵盖"background positioning area"。就其本身而言,这很好。
但是,当您同时应用 background-attachment:fixed; 时,图像将被视为 position:fixed;。
那么为什么看起来大多数浏览器都像这样覆盖整个视口,而移动版 Chrome 却没有呢?
【问题讨论】: