【发布时间】:2023-03-13 15:31:02
【问题描述】:
* {
margin:0;
padding:0;
}
body {
background-image: url(https://media.architecturaldigest.com/photos/5da74823d599ec0008227ea8/16:9/w_2560%2Cc_limit/GettyImages-946087016.jpg);
background-size: contain;
}
<html>
<body>
</body>
</html>
在本例中,当 background-size 设置为 'contain' 时,不显示背景图像。
请注意,我知道如果我将 body 的 padding 设置为 10px 或 20px,则 background-image 将显示为 padding 的大小。我不明白为什么?
* {
margin:0;
padding:0;
}
body {
background-image: url(https://media.architecturaldigest.com/photos/5da74823d599ec0008227ea8/16:9/w_2560%2Cc_limit/GettyImages-946087016.jpg);
background-size: cover;
}
<html>
<body>
</body>
</html>
在此示例中,背景大小设置为“覆盖”,并显示整个图像。如果没有定义高度,为什么“包含”不起作用,为什么它可以与填充一起使用,以及为什么尽管没有定义高度,但它对“覆盖”起作用?
【问题讨论】:
-
因为
background-size: contain将图像在其容器中尽可能大地缩放,而无需裁剪或拉伸图像。 -
您使用的是哪个浏览器 - 我在不同的浏览器上得到不同的结果(运行代码时不通过 sn-ps)。
-
@Adhitya Cover 做了类似的事情,然而,即使没有在 body 上定义尺寸,图像也会显示?
-
@AHaworth 我正在使用 Chrome。版本 87.0.4280.88(官方版本)(64 位)。你得到什么样的结果?
-
我猜
cover与contain不同。如果contain没有拉伸图像,则使用拉伸图像“覆盖”。cover被完全覆盖或contain完全可见