CSS-防止图片挤压变形- object-fit、object-position属性

前言

我们在上传图片时,由于图片尺寸与我们所设置的尺寸比例不一致,会出现图片被挤压变形的现象。在此介绍一下CSS属性object-fitobject-position,以此完美解决此问题的发生。

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 从该元素的父元素继承属性。 

 示例

对图片进行剪切,保留原始比例:

img{
 width: 200px;
 height: 200px;
 object-fit: cover;
 }

注:如果您还想切换被替换元素的内容对象在元素框内的对齐方式。可以通过使用 object-position 属性。

 object-position 

属性说明

object-position 属性一般与 object-fit 一起使用,用来设置元素的位置。

一般用于 img 和 video 标签。

语法

object-position: position|initial|inherit;

属性值

描述
position 指定 image 或 video 在容器中的位置。第一个值为 x 坐标位置的值,第二个值为 y 坐标位置的值。表示的方式有:
object-position: 50% 50%;
object-position: right top;
object-position: left bottom;
object-position: 250px 125px;
initial 设置为默认值。
inherit 从该元素的父元素继承属性。 

 示例

根据容器大小重置图片的大小,并设置图片的位置:

img{
 width: 200px;
 height: 200px;
 object-fit: none;
 object-position: 5px 10%;
 }

猜你喜欢

转载自blog.csdn.net/m0_53206841/article/details/125258625