很高兴看到 html 背景图像被很好地使用。因为一些开发人员依赖后沿 css 来保持向后兼容性,所以对于其他 css3 兼容的浏览器存在许多怪癖。就像旧 Safari 版本 (background:cover 一样,它不起作用。在这种情况下,我们可以使用旧的css3 供应商后备,如图所示
html {
background: url(images/bg.jpg) no-repeat center center fixed;
background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
-webkit-backgound-size:100% 100%; /* early css3 implementation */
-webkit-background-size:cover;
}
而且,如果您碰巧希望在纯 css 中为不同的页面使用不同的背景图片,那么我们可以使用
html#bg1 {backrgound-image:url(images/bg1.jpg);}
html#bg2 {background-image:url(images/bg2.jpg);}
但是,如果您无法为您的<html> 标签添加id 或class,您可能不得不求助于javascript。然后,您可以为 <html> 元素上的每个页面使用不同的背景图像,这正是需要的。这似乎在 html 标签上运行良好。当在html 上使用时,某些浏览器会忽略css 的background-image。 body 标签不那么喜怒无常。这可能比基于 php 的方法更好。例如:
<script>
document.getElementsByTagName('html')[0].style.backgroundImage='url(images/bg3.jpg)';
</script>
background-size 的 html css 将继续适用,并将正确覆盖各种浏览器版本。但是请注意,较旧的 Safari 会在 javascript 上抛出错误,它使用空 url,比如清除背景图像,例如
<script> /*Causes Error Safari 4*/
document.getElementsByTagName('html')[0].style.backgroundImage='url()';
</script>
该错误通常会停止javascript 的执行,但不知道原因。相反,我们需要使用style.backgroundImage='none';