HTML 全屏背景图片

HTML full screen background image

我不确定是新发布的 Firefox 35.0 有 bug 还是我的代码有问题,但是在一个 web 应用程序后面我一直使用以下设置高分辨率(缓存) 用户界面后面的背景图像。从今天升级到 Firefox 35.0 后,这不再正常工作 - 背景图像仅从页面顶部向下加载大约 5-10%,然后下面的背景是纯色 #000000。如果我从未升级 Firefox 的计算机上加载相同的代码,它可以完美运行,在 IE 中也可以正常运行。

/* This is the important part */
img.background-image {
  height: auto;
  left: 0;
  min-height: 100%;
  min-width: 1024px;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: -1;
}

/* This just to give some example context */
div#container {
  background-color: transparent;
  margin: 0 auto;
  text-align: left;
  width: 600px;
}

div#canvas {
  height: 300px;
  background-color: #ffffff;
}
<div id="container">
  <img class="background-image" 
       src="http://www.hdwallpapers.in/walls/abstract_color_background_picture_8016-wide.jpg" alt="" />
  <div id="canvas">
     Web Application is here
  </div>
</div>

请你告诉我是否有办法实现这一点,以便它在所有最新版本的 Firefox 和 IE 上正常工作,或者我是否应该保留它并希望 Firefox 发布另一个快速错误修复?!谢谢。

注意:此处指定的背景图片只是我从 Google 中找到的示例图片,仅供此问题片段使用,而不是用于 Web 应用程序的真实图片。

像这样把背景放在正文标签上

body {
background-image(url) ; 
}

CSS 应用于 html 元素并删除 img 标签。

html{

     background-size:cover;
     background-image:url(http://www.hdwallpapers.in/walls/abstract_color_background_picture_8016-wide.jpg);
}

如果您想知道为什么 html 而不是 body,请查看 this article

body 似乎可行,但是,正如对此答案的评论中提到的,html 总是保证至少是 window 的高度,这赢得了'导致意外行为。

希望对您有所帮助。

我在 FireFox 35.0 使用大图像时遇到过类似的问题。

纠结了两天,看来这个问题已经在 FireFox 36.0 Beta 中修复了。

https://bugzilla.mozilla.org/show_bug.cgi?id=1122845

一个非常简单的测试用例来说明问题如下:

var img = new Image();
img.style.position = 'fixed';               
document.body.appendChild(img);                    
img.src = "path/to/a/large/image.jpg";

这只是问题表现出来的一种方式。

只会显示图片的一小部分。图像甚至不需要很大,例如 200kb 会导致问题。

注意:如果您使用服务器上的现有图像对此进行测试,请先清除 FireFox 35.0 缓存。