JSfiddle演示了问题:
https://jsfiddle.net/qjtbchpu/11/
<div id="container">
<article>
blah
</article>
<article>
blah
</article>
</div>
#container::before {
left: 0;
right: 0;
bottom: 0;
top: 0;
content: '';
background: url(https://imgur.com/qYUPJgv.jpg);
position: fixed;
}
article {
position: relative;
height: 500px;
background: rgba(255, 255, 255, .75);
margin: 4em;
padding: 2em;
border: 1px solid black
}
这在我尝试过的所有主要浏览器中均能完美运行,除了IE11,仅当我使用position:absolute时,图片才出现。
任何已知的解决方案或解决方法?谢谢
答案 0 :(得分:1)
IE11根本不会在其中加载巨大的图像,在创建伪元素时猜测,它们不在缓存中。您的代码对某些简单/较小的图像都可以正常工作,但是对于较大的图像(加载时间很长),您可以使用以下技巧:
#container::before {
left: 0;
right: 0;
bottom: 0;
top: 0;
content: url(https://imgur.com/qYUPJgv.jpg);
background: url(https://imgur.com/qYUPJgv.jpg);
background-size: cover;
text-indent: -9999px;
overflow: hidden;
position: fixed;
}
article {
position: relative;
height: 500px;
background: rgba(255, 255, 255, .75);
margin: 4em;
padding: 2em;
border: 1px solid black
}
<div id="container">
<article>
blah
</article>
<article>
blah
</article>
</div>
经过测试,它也可以在JSFiddle上正常工作。
强制浏览器加载图像的关键行是:
content: url(https://imgur.com/qYUPJgv.jpg);