object-fit

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

Thuộc tính object-fit CSS xác định cách nội dung của phần tử thay thế, chẳng hạn như <img> hay <video>, được thay đổi kích thước để vừa với khung chứa của nó.

Note: Thuộc tính object-fit không có hiệu lực với các phần tử <iframe>, <embed>, và <fencedframe>.

Bạn có thể thay đổi căn chỉnh của đối tượng nội dung của phần tử thay thế trong hộp của phần tử bằng cách sử dụng thuộc tính object-position.

Try it

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

Cú pháp

css
object-fit: contain;
object-fit: cover;
object-fit: fill;
object-fit: none;
object-fit: scale-down;

/* Giá trị toàn cục */
object-fit: inherit;
object-fit: initial;
object-fit: revert;
object-fit: revert-layer;
object-fit: unset;

Thuộc tính object-fit được chỉ định là một từ khóa đơn được chọn từ danh sách các giá trị bên dưới.

Giá trị

contain

Nội dung thay thế được thu phóng để duy trì tỉ lệ khung hình của nó trong khi vừa với hộp nội dung của phần tử. Toàn bộ đối tượng được lấp đầy hộp, trong khi vẫn giữ nguyên tỉ lệ khung hình, vì vậy đối tượng sẽ có thanh đen trên dưới hoặc thanh đen hai bên nếu tỉ lệ khung hình của nó không khớp với tỉ lệ khung hình của hộp.

cover

Nội dung thay thế được thu phóng để duy trì tỉ lệ khung hình trong khi lấp đầy toàn bộ hộp nội dung của phần tử. Nếu tỉ lệ khung hình của đối tượng không khớp với tỉ lệ khung hình của hộp, đối tượng sẽ bị cắt xén để vừa.

fill

Nội dung thay thế được thu phóng để lấp đầy hộp nội dung của phần tử. Đây là giá trị ban đầu. Toàn bộ đối tượng sẽ lấp đầy hoàn toàn hộp. Nếu tỉ lệ khung hình của đối tượng không khớp với tỉ lệ khung hình của hộp, đối tượng sẽ bị kéo giãn để vừa.

none

Nội dung thay thế không được thay đổi kích thước.

scale-down

Nội dung được thu phóng như thể none hoặc contain được chỉ định, tùy theo giá trị nào cho kết quả kích thước đối tượng cụ thể nhỏ hơn.

Định nghĩa hình thức

Initial valuefill
Applies toreplaced elements
Inheritedno
Computed valueas specified
Animation typediscrete

Cú pháp hình thức

object-fit = 
fill |
none |
[ contain | cover ] || scale-down

Ví dụ

Thiết lập object-fit cho hình ảnh

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

Kết quả

Thông số kỹ thuật

Specification
CSS Images Module Level 3
# the-object-fit

Khả năng tương thích trình duyệt

Xem thêm