在前端处理图片是很是常见的,而图片展现又存在一个最大的问题:适应,
能够看看这种状况:css
固定空间展现图片前端
就图片展现而言,按宽高比进行缩放是最好的结果,宽高1:1的话,放到正方形空间内很好,但是若是是1:1.5的图片须要放到正方形页面容器里面呢?url
目前须要前端处理的方式是使用background来操做,而不是img元素,须要如下几个属性的配合:code
为了使图片可以按照正常的宽高比显示,能够理解成如下几步操做:htm
代码能够以下书写:对象
background-image: url(test.img); // background-size这个须要注意,大小须要看伸缩时是宽度会有富余仍是高度会有富余,有富余者为auto,恰好填充满的就是100% //好比宽高分别: 容器是100px*100px的,图片是240px*200px,那么在缩小填充容器时图片的高度会先触及到容器的边缘,也就是填满容器时,宽度有富余为auto,高度为100%; background-size: auto 100%; // 可使用cover background-position: center; //背景图片居中显示,让多余部分相对容器对此展现 background-repeat: no-repeat; background-origin: border-box; //从border开始填充 background-clip: border-box; //border外的多余背景图片不展现,截取掉,
可使用background的缩写模式:图片
style="background:url(test.img) center/auto 100% no-repeat border-box border-box"
须要注意的是background-size的书写须要看状况而变
background-size这个须要注意,大小须要看伸缩时是宽度会有富余仍是高度会有富余,有富余者为auto,恰好填充满的就是100%ip
好比宽高分别:
容器是100px100px的,图片是240px200px,那么在缩小填充容器时图片的高度会先触及到容器的边缘,也就是填满容器时,宽度有富余为auto,高度为100%;
background-size: auto 100%;
因此能够考虑使用cover这个值,background-size:cover;get