如何在文本滚动时保留背景图像? (苹果浏览器)

How to make background image stay while text scrolls? (Safari)

在您尝试关闭之前:我知道那里有类似的问题和答案,但是 none 这些解决方案对我有用,而不是将滚动全部锁定在一起。这可能是因为我使用的是 w3schools 的网站模板。

我正在为一个学校项目制作一个网站,我希望其中的背景是一张树叶图片。不幸的是,这张图片似乎没有覆盖整个页面,导致它向下重复。这是一个问题。

我已经在 chrome(对于 windows)上使用 background-attachment: fixed; 解决了这个问题,但是发现 safari 不支持这个。

可访问网站代码:here。 (Control + U 为页面源代码)

tldr;我需要为适合我网站的 safari 找到 background-attachment: fixed; 的等价物。

提示:您必须在 Safari 浏览器中测试页面才能看到问题。

在这种情况下,由于您指出的 Safari 附件修复问题,您无法将背景保留在实际主体上。

然而,您可以将背景放在伪元素上,然后使用 'ordinary' CSS 固定位置,这样即使您向下滚动它也能保持在原位。

这是一个基本示例:

body {
  width: 100vw;
  height: 200vh;
  margin: 0;
  padding: 0;
}

body::before {
  content: '';
  position: fixed;
  width: 100vw;
  height: 100vh;
  background-image: url("https://hdwallsource.com/img/2014/5/green-background-21874-22427-hd-wallpapers.jpg");
  background-size: cover;
  z-index: -1; /* added */
}

注意:背景大小设置为覆盖,因此无论宽高比如何,整个视口都会被覆盖(某些 img 可能会被裁剪 top/bottom 或在侧面裁剪以使其适合)。