我试图隐藏身体直到页面加载,但是,当身体的背景图像开始加载时,它会忽略显示:无法为身体设置并显示它。
Body CSS
body {
background-image: url("../img/backgrounds/authentication/main.jpg");
}
正文HTML:
<body style="display: none;">
答案 0 :(得分:1)
如果half
元素没有附加<html>
,那么文档的background
将从background
元素 取而代之。
默认情况下,<body>
元素没有附加<html>
。因此,当您设置background
时,HTML元素将需要一些背景渲染到屏幕,因此采用 style="display:none;"
元素的背景。
一个简单的解决方案是将<body>
元素的background-color
设置为某种不透明的颜色(即默认的“颜色”)。 Here is a jsfiddle demonstrating this.(只需移除<html>
代码中的display: none
即可显示图片)
希望这有帮助。 :)
答案 1 :(得分:1)
在你的html中,将属性hidden
提供给正文。
<body hidden>
</body>
另外,请确保您的html正确(所有标签都已正确关闭)并且所有内容都在正文中。
答案 2 :(得分:0)
您可以尝试给身体一个高度= 0,然后执行像
这样的onload函数 document.onload=function(){ body.style.height="100%"};
如果你有兴趣,你也可以给jQuery和fadeIn fadeOut函数一个镜头;)
答案 3 :(得分:0)
请按照以下步骤操作:“https://www.sitepoint.com/community/t/load-background-image-after-content-loads/240343/3”以及“https://varvy.com/pagespeed/defer-images.html”可能会解决您的问题。
否则只需在你的CSS中添加以下内容。
body {
background-color: #eee;
}
body:after {
content:"";
background: url(http://yourimage-url.jpg ) no-repeat 0 0;
background-size: cover;
position:fixed;
top:0;
left:0;
right:0;
bottom:0;
opacity:0;
z-index:-1;
animation:bgFade 2s 2s forwards;
}
@keyframes bgFade {
from {
opacity:0;
}
to {
opacity:1;
}
}