可以使用CSS来控制图片显示位置,以及图片的填充方式。我们先看看效果,如下:
(1)未优化效果图
(2)优化过后的效果图
<div> <img src="images/2021/01/08/6ad934bc031cad6b1b4a9328cb7c6734.jpg" /> </div>
div { height: 200px;width:200px; overflow:hidden; border:solid 3px red; } div img { width: 100%; height: 100%; object-fit:cover; }
其中,object-fit 属性指定元素的内容应该如何去适应指定容器的高度与宽度。object-fit 一般用于 img 和 video 标签,一般可以对这些元素进行保留原始比例的剪切、缩放或者直接进行拉伸等。
object-fit: fill|contain|cover|scale-down|none|initial|inherit;
属性值说明:
ill:默认,不保证保持原有的比例,内容拉伸填充整个内容容器。
contain:保持原有尺寸比例。内容被缩放。
cover:保持原有尺寸比例。但部分内容可能被剪切。
none:保留原有元素内容的长度和宽度,也就是说内容不会被重置。
scale-down:保持原有尺寸比例。内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。
initial:设置为默认值
inherit:从该元素的父元素继承属性
当然,我们也可以借助 transform + translate 来实现同样的效果。CSS代码如下:
div { position: relative; height: 200px;width:200px; overflow:hidden; border:solid 3px red; } div img { max-height: 100%; position: absolute; left:50%; top:50%; transform:translate(-50%,-50%); }