gpt4 book ai didi

html - 了解全高背景图像的行为

转载 作者:行者123 更新时间:2023-11-28 15:20:11 25 4
gpt4 key购买 nike

我正在尝试制作占据视口(viewport)高度的背景图像。我注意到一些奇怪的行为,希望有人能解释一下。所以我只是有

<body>
<div class="main">
<header class="header"></header>
</div>
</body>

现在我想让标题有一个背景图像,它是视口(viewport)的整个高度。因此,我执行以下操作

html,
body {
width: 100%;
height: 100%;
}

.header{
background: url("../images/1.jpg");
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
height:100%;
}

现在当我这样做时,我得到一个空白页。现在这是我试图理解的部分。如果我将高度更改为 100vh 它会起作用。但是,如果我将它保持在 100% 并删除带有 main 类的 div,它就可以工作。

现在我知道它将是其父标签的 100%,但是带有 main 类的 div 没有指定高度,那么这不应该继承 100% 的 body 标签,它占据了整个视口(viewport)吗?显然我可以给 main 一个 100% 的高度,然后一切都按预期工作,只是想知道为什么在没有指定高度时它不从 body 获取它。还想知道为什么 100vh 有效?

感谢任何建议。

谢谢

最佳答案

您的 .main 容器 CSS 丢失

.main {
width: 100%;
height: 100%;
}

html,
body {
width: 100%;
height: 100%;
}

.main {
width: 100%;
height: 100%;
}
.header{
background: url("https://placeimg.com/1000/1000/any");
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
height:100%;
}
<div class="main">
<header class="header"></header>
</div>

标题填充它的直接父级:main,如果你没有设置这个 div 来填充正文,那就是问题所在。

将正文中的 margin 和 padding 设置为 0 也是一个好主意:

html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}

关于html - 了解全高背景图像的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46324024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com