1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > html背景图片压缩显示 css背景图片在浏览器缩小时为什么下面出现了白色的

html背景图片压缩显示 css背景图片在浏览器缩小时为什么下面出现了白色的

时间:2020-07-28 20:25:43

相关推荐

html背景图片压缩显示 css背景图片在浏览器缩小时为什么下面出现了白色的

我来补充一下原因。

首先,我测试了一下,的确存在这个问题。

Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.

这里有2个要点。1是保持图片自身的宽高比不变。2是会缩放图片,使得缩放后的图片所占据的尺寸,在宽、高两个维度上都要分别大于(或等于)容器的宽、高。

从这2个要点,其实可以得到结论,如果一个容器存在一定的宽和高(也就是都不为0),那么background-size: cover;一定可以保证背景图缩放至覆盖满整个容器。

但为什么题主发现不是这样呢?

注意到用的是body这个元素,而body在不通过css定义高的情况下,其高度是取决于内容的。那么,就可以想到,body的内容高度可能没有那么高,比如像下图这样:

这张图内可以看到body的高度只有100px(因为整个文档里只有这一行文字内容)。现在,再回头考虑那2个要点。背景图在保持比例的基础上进行缩放,且满足宽高分别超过body的宽高。显然,这张图只需要填满那个小区域就足够了。

为什么不继续扩大一点呢? 请注意W3C的那段话里的smallest。

所以,要保证覆盖满想要的整个区域,就让body填满整个区域,也就是为body和html添加height: 100%;。width: 100%;是不需要的,因为块元素默认就是满宽度。这就是 @Naraku_ 给的答案了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。