CSS object-fit 属性
CSS object-fit 属性用于规定应如何调整 <img> 或 <video> 的大小来适应其容器。
浏览器支持
表格中的数字注明了完全支持该属性的首个浏览器版本。
属性 | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
object-fit | 31.0 | 16.0 | 36.0 | 7.1 | 19.0 |
CSS object-fit 属性
CSS object-fit 属性用于指定应如何调整 <img> 或 <video> 的大小以适合其容器。
这个属性告诉内容以不同的方式填充容器。比如“保留长宽比”或者“展开并占用尽可能多的空间”。
请看下面来自上海鲜花港的郁金香图片,它是 300x300 像素:
但是,如果我们把上面的图像设置为 200x300 像素,则它会看起来像这样:
实例
img { width: 200px; height: 300px; }
我们看到图像被压缩以适合 200x300 像素的容器,并且原始宽高比被破坏了。
如果我们使用 object-fit: cover;,它会剪切图像的侧面,保留长宽比,并填充空间,如下所示:
实例
img { width: 200px; height: 400px; object-fit: cover; }
另一个实例
在这里,我们有两幅图像,我们希望它们填充浏览器窗口的 50% 的宽度和 100% 的高度。
在下面的例子中,我们不使用 object-fit,因此,当我们调整浏览器窗口的大小时,图像的长宽比将被破坏:
实例
在下一个例子中,我们使用 object-fit: cover;,因此,当我们调整浏览器窗口的大小时,将保留图像的长宽比:
实例
CSS object-fit 属性的所有值
object-fit 属性可接受如下值:
- fill - 默认值。调整替换后的内容大小,以填充元素的内容框。如有必要,将拉伸或挤压物体以适应该对象。
- contain - 缩放替换后的内容以保持其纵横比,同时将其放入元素的内容框。
- cover - 调整替换内容的大小,以在填充元素的整个内容框时保持其长宽比。该对象将被裁剪以适应。
- none - 不对替换的内容调整大小。
- scale-down - 调整内容大小就像没有指定内容或包含内容一样(将导致较小的具体对象尺寸)
下面的例子演示了 object-fit 属性的所有可能值:
实例
fill {object-fit: fill;} contain {object-fit: contain;} cover {object-fit: cover;} scale-down {object-fit: scale-down;} none {object-fit: none;}