object-fit 属性指定元素的内容应该如何去适应指定容器的高度与宽度。
用法:object-fit 一般用于 img 和 video 标签,一般可以对这些元素进行保留原始比例的剪切、缩放或者直接进行拉伸等。
语法
object-fit: fill(默认值)|contain|cover|scale-down|none|initial|inherit;
属性值
值 | 描述 |
---|---|
fill | 默认,不保证保持原有的比例,内容拉伸填充整个内容容器。 |
contain | 保持原有尺寸比例。内容被缩放。 |
cover | 保持原有尺寸比例。但部分内容可能被剪切。 |
none | 保留原有元素内容的长度和宽度,也就是说内容不会被重置。 |
scale-down | 保持原有尺寸比例。内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。 |
initial | 设置为默认值 |
inherit | 从该元素的父元素继承属性 |
效果如下:
图片本来这个样子:
代码如下:
.image-wrapper {
width: 200px;
height: 100px;
border: 1px solid #000;
padding: 10px;
}
.image-wrapper img {
width: 100%;
height: 100px;
object-fit: fill; //默认,可不写
}
<div class="image-wrapper">
<img src="./头像.jpg" alt="图片">
</div>
发现图片变形了
.image-wrapper img {
width: 100%;
height: 100px;
object-fit: cover;
}
图片尺寸比例没变,但是被裁剪了
.image-wrapper img {
width: 100%;
height: 100px;
object-fit: contain;
}
图片尺寸比例没变,但是被缩放了
.image-wrapper img {
width: 100%;
height: 100px;
object-fit: none;
}
图片保留了本来的长度和宽度
.image-wrapper img {
width: 100%;
height: 100px;
object-fit: scale-down;
}
图片尺寸比例没变。内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。这个取得contain