css实现图片自适应缩放的两种方法

想要实现图片根据给定宽高来自适应缩放的时候,会想到什么属性?是object-fit: cover;吗?
来试一试!为了展示效果,我特地选了对称的图片。下面两个img元素都有一个div包裹,div设置固定宽高,第一个img标签宽高均100%,第二个img标签宽高均最小100%:




	
    
    


	

css实现图片自适应缩放的两种方法_第1张图片
确实!object-fit: cover;工作良好。那有没有其他方式?看第二个img标签的样式!

从最终效果来看,第一种方案展示的内容更多!因为object-fit: cover;的裁剪是按照img标签宽高值中较大的值为基准的,将图片从中心按宽或高缩放至最大值后,再裁去多余部分后展示。

在第二种方案中,img标签的宽高就是图片的宽高。通过位移和坐标变换使其居中。这个方案有个弊端,就是图片实际宽高和我们想要展示的宽高差距过大时,展示的内容会非常少,只有中间一点点,而且hover缩放效果也没有了。所以应该使用第一种方案。

后续:在实际使用中,第二种方案体验明显更好。第一种在旋转变换的时候出现空白区域,且有抖动。第二种方案没有这个问题。如果只是缩放展示,第一种方案是首选;如果需要动画效果,第二种方案更加合适。

你可能感兴趣的:(前端笔记)