object-fit

Avatar of Robin Rendle
Robin Rendle on

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 免费额度!

object-fit 属性定义了元素如何响应其内容框的高度和宽度。 它旨在与 object-position 属性结合使用,用于图像、视频和其他可嵌入媒体格式。 单独使用时,object-fit 允许我们通过提供对图像在其框内如何压缩和拉伸的细粒度控制来裁剪内联图像。

object-fit 可以使用以下五个值之一设置

  • fill:这是默认值,它会拉伸图像以适合内容框,而不管其纵横比如何。
  • contain:增加或减小图像大小以填充框,同时保持其纵横比。
  • cover:图像将填充其框的高度和宽度,再次保持其纵横比,但通常会在这个过程中裁剪图像。
  • none:图像将忽略父级的高度和宽度,并保留其原始大小。
  • scale-down:图像将比较 nonecontain 之间的差异,以便找到最小的具体对象大小。

以下是如何设置该属性

img {
  height: 120px;
}

.cover {
  width: 260px;
  object-fit: cover;
}
object-fit example

由于第二张图像的纵横比与左侧的原始图像不同,因此它将在其内容框的范围之外拉伸,裁剪图像的顶部和底部部分。

值得注意的是,默认情况下,图像在其内容框内居中,但这可以通过 object-position 属性更改。

演示

下面的演示展示了五个示例,详细说明了我们可能希望图像如何挤压到内容框中,该内容框有时比其原始宽度小或大(调整浏览器以更好地了解这可能如何工作)

查看笔 object-fit 由 Robin Rendle (@robinrendle) 在 CodePen 上创建。

如果图像的内容由于某种原因未填充内容框,则未填充的空间将显示元素的背景,在本例中为浅灰色背景。

相关属性

其他资源

浏览器支持

值得注意的是,iOS 8-9.3 和 Safari 7-9.1 支持 object-fit 属性,但不支持 object-position

此浏览器支持数据来自 Caniuse,其中包含更多详细信息。 数字表示浏览器从该版本开始支持该功能。

桌面

ChromeFirefoxIEEdgeSafari
32367910

移动设备/平板电脑

Android ChromeAndroid FirefoxAndroidiOS Safari
1271274.4.3-4.4.410.0-10.2