background-size值:cover、100%和contain的区别

background-size 属性规定背景图像的尺寸。 先看看W3C的解释: background-size:contain;等比缩放,按照某一边来覆盖显示区域的,若区域大于图片的比例,会有白边,图片不会变形 图片右边有空白区域 background-size:100% 100%;---按容器比例撑满,图片变形; 图片被横向拉伸 background-size:100%;相当于background-size:100% auto的写法,y轴根据图片原来的比例,以及现有的宽度,来确定高度。 比方说:你有一张长宽比例为4:3的图片,有一个width:100px;height:50px;的盒子(也就是长宽比例为2:1)。 background-size:100% 100%;这种方式设置完背景图片的大小后,会完全铺满整个盒子,并且背景图片的比例会因此改变为2:1 background-size:100%;这种方式设置的背景图片的大小,x轴会和盒子一样的宽,但是y轴由于默认为auto,根据上面的理论计算得背景图片的高度为300px,但是盒子只有50px高,超出的部分隐藏。 第一种效果你一定会看到完整的背景图片,但是图片可能变形。 第二种效果你不一定能看到完整的图片,但是图片的比例没有发生变化。 图片下面部分被裁剪 background-size:cover;---把背景图片放大到适合元素容器的尺寸,图片比例不变,但是要注意,超出容器的部分可能会裁掉。 图片右边被裁剪 总结: background-size:100%;总是X轴100%铺满整个容器,Y轴可能被裁剪会出现空白填不满部分,图片不变形。 background-size:100% 100%;图片不保持比例放大或缩小使X轴与Y轴都铺满整个容器,图片可能会变形。 background-size:cover;图片保持比例放大或缩小使X轴与Y轴都铺满整个容器,但图片超出容器部分会被裁剪掉,图片不变形。 background-size:contain;图片保持比例放大或缩小填充容器,若不能完整填充容器,X轴或Y轴都有可能出现白边,图片不变形。 原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):