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 像素:

Tulip

但是,如果我們把上面的圖像設置為 200x300 像素,則它會看起來像這樣:

Tulip

實例

img {
  width: 200px;
  height: 300px;
}

親自試一試

我們看到圖像被壓縮以適合 200x300 像素的容器,并且原始寬高比被破壞了。

如果我們使用 object-fit: cover;,它會剪切圖像的側面,保留長寬比,并填充空間,如下所示:

Coffee

實例

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;}

親自試一試