object-fit
object-fit CSS 属性用于指定可替换元素(如 <img> 或 <video>)的内容应该如何调整大小以适应其容器。
注意: object-fit 属性对 <iframe>、<embed> 和 <fencedframe> 元素没有影响。
你可以使用 object-position 属性来更改可替换元素内容对象在其元素框内的对齐方式。
试一试
object-fit: fill;
object-fit: contain;
object-fit: cover;
object-fit: none;
object-fit: scale-down;
<section id="default-example">
  <img
    class="transition-all"
    id="example-element"
    src="/shared-assets/images/examples/plumeria-146x200.jpg" />
</section>
#example-element {
  height: 100%;
  width: 100%;
  border: 2px dotted #888888;
}
语法
css
object-fit: contain;
object-fit: cover;
object-fit: fill;
object-fit: none;
object-fit: scale-down;
/* Global values */
object-fit: inherit;
object-fit: initial;
object-fit: revert;
object-fit: revert-layer;
object-fit: unset;
object-fit 属性指定为从以下值列表中选择的单个关键字。
值
- contain
- 
可替换内容按比例缩放,以保持其宽高比,同时适应元素的 content box。整个对象将填充盒子,同时保持其宽高比,因此如果对象的宽高比与盒子的宽高比不匹配,对象将被 “信箱” 或 “柱箱” 填充。 
- cover
- 
可替换内容按比例缩放,以保持其宽高比,同时填充元素的整个 content box。如果对象的宽高比与盒子的宽高比不匹配,则对象将被裁剪以适应。 
- fill
- 
可替换内容调整大小以填充元素的 content box。整个对象将完全填充盒子。如果对象的宽高比与盒子的宽高比不匹配,则对象将被拉伸以适应。 
- none
- 
可替换内容不进行大小调整。 
- scale-down
- 
内容的尺寸将按照指定 none或contain的方式进行调整,以较小的具体对象尺寸为准。
正式定义
正式语法
object-fit =
fill |
none |
[ contain | cover ] || scale-down
示例
为图像设置 object-fit
HTML
html
<section>
  <h2>object-fit: fill</h2>
  <img class="fill" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <img class="fill narrow" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <h2>object-fit: contain</h2>
  <img class="contain" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <img class="contain narrow" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <h2>object-fit: cover</h2>
  <img class="cover" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <img class="cover narrow" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <h2>object-fit: none</h2>
  <img class="none" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <img class="none narrow" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <h2>object-fit: scale-down</h2>
  <img class="scale-down" src="mdn_logo_only_color.png" alt="MDN Logo" />
  <img class="scale-down narrow" src="mdn_logo_only_color.png" alt="MDN Logo" />
</section>
CSS
css
h2 {
  font-family: "Courier New", monospace;
  font-size: 1em;
  margin: 1em 0 0.3em;
}
img {
  width: 150px;
  height: 100px;
  border: 1px solid black;
  margin: 10px 0;
}
.narrow {
  width: 100px;
  height: 150px;
}
.fill {
  object-fit: fill;
}
.contain {
  object-fit: contain;
}
.cover {
  object-fit: cover;
}
.none {
  object-fit: none;
}
.scale-down {
  object-fit: scale-down;
}
结果
规范
| 规范 | 
|---|
| CSS 图像模块第三级 # the-object-fit | 
浏览器兼容性
加载中…
另见
- 其他与图像相关的 CSS 属性:object-position、image-orientation、image-rendering、image-resolution。
- background-size
- 理解纵横比