深入探讨objectfit

发布时间:2023-05-19

一、什么是object-fit

object-fit 是一种 CSS 属性,它可以控制一个元素(如 imgvideo 等)在其容器中的大小和位置。 这个属性可以让元素自适应其父容器,不需要软件或脚本的帮助,可以更加方便地将视觉元素嵌入到网站中。

二、object-fit 的值

object-fit 属性有 5 个值:fillcontaincovernonescale-down

1. fill

img {
  object-fit: fill;
}

fill 值让元素填充其父容器,不保留其原始高宽比。

2. contain

img {
  object-fit: contain;
}

contain 值保持元素的原始高宽比,缩小元素以适应其父容器,并居中对齐。

3. cover

img {
  object-fit: cover;
}

cover 值保持元素的原始高宽比,裁剪元素以充满其父容器,并居中对齐。

4. none

img {
  object-fit: none;
}

none 值会保持元素的原始高宽比并将其放置在元素的父容器中,但对齐方式和尺寸由开发者自行决定。

5. scale-down

img {
  object-fit: scale-down;
}

如果元素本身的大小小于容器的大小,则 scale-down 将以元素的原始大小为基准,使用 contain 的规则调整大小。

三、搭配 object-position 使用

在处理图像和视频时,object-position 是另一个 CSS 属性,它可以控制被定位元素的位置。该属性可以用来调整元素在其父容器中的位置,而不是默认居中。 object-position 使用像素单位描述元素的水平和垂直位置,如下所示:

img {
  object-fit: cover;
  object-position: top center;
}

这将显示图像的顶部中心,而不是默认的居中。

四、使用示例

下面是一个完整的使用示例,演示了如何将一个元素添加到网页中,并使其在其容器中自适应。

<title>使用object-fit</title>
<style>
  .container {
    width: 400px;
    height: 400px;
    border: 1px solid black;
  }
  .photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
</style>
<div class="container">
</div>