【发布时间】:2020-06-17 04:16:06
【问题描述】:
我正在观看Traversy Media 的this 视频,其中他展示了如何制作视差网站。在this 点,他选择了html 以及body 标记。我认为可能有什么区别,并且添加带有 body 标签的 html 将是多余的,因为 html 中只有 body 和 head,并且由于我们正在设置 body 样式,因此我们想要设置样式的所有内容都可以通过选择 body 来设置样式。所以我最初没有在我的代码中写“html”,结果:背景图像只是覆盖了元素的背景,而额外的部分被隐藏了(根据我的代码,这应该是预期的,但我想知道为什么我们的结果不同。然后我意识到我的代码正在按应有的方式工作,而他的工作方式不同)。然后我意识到选择body和选择html之间是有区别的(我仍然不知道区别)。所以我在body之后编写了选择html的代码,并将html的高度设置为100%。现在我得到了视频中显示的内容。但我不明白怎么做。据我所知,这不应该有所作为,因为“body”在代码中将其高度设置为“100%”。当我删除 body 的高度时,它就像以前一样工作,即背景图像仅覆盖元素,即使 html 的高度设置为 100%。我也不明白设置html和body高度的目的。默认情况下它们不覆盖整个视口吗?
(这是我的第一个问题,如果我需要对问题进行任何更改以使其可以回答,请告诉我)
编辑: 已添加链接,在第一个代码 sn-p 上添加“.pimg1, .pimg2, .pimg3{background-attachment: fixed;}”,添加第二个代码 sn-p(预期结果但不希望出现)
我的代码使它按照我的意图工作(期望但不可理解)(Preview):
body{
height: 100%;
margin: 0;
font-size: 16px;
font-family: "Lato", sans-serif;
font-weight: 400;
line-height: 1.8em;
color:#666;
}
html{
height: 100%;
}
.pimg1, .pimg2, .pimg3{
background-attachment: fixed;
}
.pimg1{
background-image:url('../img/image1.jpg');
min-height: 100%;
}
.pimg2{
background-image:url('../img/image2.jpg');
min-height: 400px;
}
.pimg3{
background-image:url('../img/image3.jpg');
min-height: 400px;
}
我最初编写的代码(预期但不受欢迎)(Preview)
body{
margin: 0;
font-size: 16px;
font-family: "Lato", sans-serif;
font-weight: 400;
line-height: 1.8em;
color:#666;
height: 100%;
}
.pimg1, .pimg2, .pimg3{
background-attachment: fixed;
}
.pimg1{
background-image:url('../img/image1.jpg');
height: 100%;
}
.pimg2{
background-image:url('../img/image2.jpg');
min-height: 400px;
}
.pimg3{
background-image:url('../img/image3.jpg');
min-height: 400px;
}
p{
font-size:30px;
}
已解决:我正在编辑容器 div 的高度,并认为我只是在编辑背景图像的高度。我太不合逻辑了。我现在知道了。谢谢https://stackoverflow.com/users/897416/charles 和https://stackoverflow.com/users/8620333/temani-afif
【问题讨论】:
-
我也不明白设置html和body高度的目的。默认情况下它们不覆盖整个视口吗? --> 不,它们都没有,都需要明确设置为 100% 以覆盖视口高度但我想你没有添加 doctype你的代码和你没有进入怪异模式,它是不同的:stackoverflow.com/q/32214152/8620333
-
@TemaniAfif 好的。而且我的代码中已经有 doctype。但我原来的问题仍然存在。为什么当 html 的高度设置为 100% 时背景图像会完全显示?不幸的是,我的问题已被标记为重复。我没有在重复链接上找到我的答案。这里ygshbht.github.io/parallaxWebsite。定义了 html 和 body 高度,这里是ygshbht.github.io/parallaxWebsite2。至少有一个没有。
-
副本解释了百分比是如何工作的,并且您的两个示例都确认副本是您需要的。缺少一个高度:100% 会破坏一切,因为您错过了参考。从副本:要设置百分比高度,其父元素必须具有明确的高度。
-
@TemaniAfif 我的错。我正在编辑容器 div 的高度,并认为我只是在编辑背景图像的高度。我太不合逻辑了。我现在知道了。谢谢
标签: html css height background-image