Hình nền css chiều cao đầy đủ

Ahmad Shadeed là một nhà thiết kế UX và nhà phát triển front-end đến từ Palestine. Anh ấy thích làm việc với các dự án thiết kế và phát triển front-end đầy thách thức. Anh ấy đã viết một … Thông tin thêm về Ahmad ↬

Show

Bản tin email

Email (đập vỡ) của bạn

Mẹo hàng tuần về giao diện người dùng & UX.
Được hơn 200.000 người tin cậy.

  • Hình nền css chiều cao đầy đủ
    Giao diện người dùng SmashingConf 2023

  • Hình nền css chiều cao đầy đủ
    Bắt đầu miễn phí
  • Hình nền css chiều cao đầy đủ
    Hệ thống thiết kế thành công

  • Hình nền css chiều cao đầy đủ
    SmashingConf Freiburg 2023

  • Hình nền css chiều cao đầy đủ
    Danh sách kiểm tra thiết kế giao diện thông minh

Trong bài viết này, chúng ta sẽ tìm hiểu cách thức hoạt động của
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2 và
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
3, khi nào chúng ta có thể sử dụng chúng và tại sao, cùng với một số trường hợp sử dụng thực tế và đề xuất. Hãy đi sâu vào

Không phải lúc nào chúng tôi cũng có thể tải các hình ảnh có kích thước khác nhau cho một phần tử HTML. Nếu chúng tôi sử dụng chiều rộng và chiều cao không tỷ lệ với tỷ lệ khung hình của hình ảnh, hình ảnh có thể bị nén hoặc kéo dài. Điều đó không tốt, và nó có thể được giải quyết bằng cách sử dụng

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2 cho phần tử
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
5 hoặc bằng cách sử dụng
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
3

Đầu tiên, hãy xác định vấn đề. Xét hình sau

Hình nền css chiều cao đầy đủ
Ảnh đẹp mà bị bóp khi dùng trong linh kiện thẻ. (Xem trước lớn)

Tại sao chuyện này đang xảy ra?

Một hình ảnh sẽ có tỷ lệ khung hình và trình duyệt sẽ lấp đầy hộp chứa bằng hình ảnh đó. Nếu tỷ lệ khung hình của hình ảnh khác với chiều rộng và chiều cao được chỉ định cho nó, thì kết quả sẽ là hình ảnh bị nén hoặc kéo dài

Chúng ta thấy điều này trong hình sau

Hình nền css chiều cao đầy đủ
Tỷ lệ khung hình của hình ảnh khác với hộp chứa và hình ảnh bị kéo dài. (Xem trước lớn)

Giải pháp

Không phải lúc nào chúng ta cũng cần thêm hình ảnh có kích thước khác khi tỷ lệ khung hình của hình ảnh không khớp với chiều rộng và chiều cao của phần tử chứa. Trước khi đi sâu vào các giải pháp CSS, tôi muốn cho bạn thấy cách chúng tôi đã từng làm điều này trong các ứng dụng chỉnh sửa ảnh

Hình nền css chiều cao đầy đủ
Đầu tiên, chúng tôi sẽ căn giữa hình ảnh theo chiều dọc, sau đó cắt một mặt nạ. Điều này giữ lại tỷ lệ khung hình của hình ảnh và ngăn không cho hình ảnh bị bóp. (Xem trước lớn)

Bây giờ chúng ta đã hiểu cách thức hoạt động của nó, hãy tìm hiểu cách thức hoạt động của nó trong trình duyệt. (Cảnh báo tiết lộ. Nó dễ hơn. )

CSS .card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }2

Thuộc tính

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2 xác định cách thay đổi kích thước nội dung của phần tử được thay thế, chẳng hạn như
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
5 hoặc
.card__thumb img {
    aspect-ratio: 4 / 3;
}
0 để phù hợp với vùng chứa của nó. Giá trị mặc định cho
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2 là
.card__thumb img {
    aspect-ratio: 4 / 3;
}
2, điều này có thể khiến hình ảnh bị nén hoặc kéo dài

Hãy đi qua các giá trị có thể

Thêm sau khi nhảy. Tiếp tục đọc bên dưới ↓

Gặp gỡ Hội thảo trực tuyến Smashing về giao diện người dùng & giao diện người dùng, với các bài học thực tế, phiên trực tiếp, bản ghi video và phần Hỏi & Đáp thân thiện. Trên các hệ thống thiết kế, UX, hiệu suất web và CSS/JS. Với Brad Frost, Stephanie Troeth và rất nhiều người khác

Chuyển đến hội thảo ↬

Hình nền css chiều cao đầy đủ

Giá trị có thể có cho .card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }2

.card__thumb img { aspect-ratio: 4 / 3; }4

Trong trường hợp này, hình ảnh sẽ được thay đổi kích thước để phù hợp với tỷ lệ khung hình của vùng chứa. Nếu tỷ lệ khung hình của hình ảnh không khớp với tỷ lệ khung hình của vùng chứa, thì nó sẽ được đóng hộp chữ

Hình nền css chiều cao đầy đủ
Khi sử dụng
.card__thumb img {
    aspect-ratio: 4 / 3;
}
4, hình ảnh sẽ được đóng hộp thư hoặc thay đổi kích thước cho phù hợp. (Xem trước lớn)

.card__thumb img { aspect-ratio: 4 / 3; }6

Tại đây, hình ảnh cũng sẽ được thay đổi kích thước để phù hợp với tỷ lệ khung hình của vùng chứa và nếu tỷ lệ khung hình của hình ảnh không khớp với tỷ lệ khung hình của vùng chứa, thì nó sẽ được cắt bớt cho phù hợp.

Hình nền css chiều cao đầy đủ
Khi sử dụng
.card__thumb img {
    aspect-ratio: 4 / 3;
}
6, hình ảnh sẽ được cắt bớt để phù hợp hoặc thay đổi kích thước cho phù hợp. (Xem trước lớn)

.card__thumb img { aspect-ratio: 4 / 3; }8

Với điều này, hình ảnh sẽ được thay đổi kích thước để phù hợp với tỷ lệ khung hình của vùng chứa nó và nếu tỷ lệ khung hình của hình ảnh không khớp với tỷ lệ khung hình của vùng chứa, thì nó sẽ bị nén hoặc kéo dài. Chúng tôi không muốn điều đó

Hình nền css chiều cao đầy đủ
Khi sử dụng
.card__thumb img {
    aspect-ratio: 4 / 3;
}
8, hình ảnh sẽ được nén, kéo dài hoặc thay đổi kích thước cho phù hợp. (Xem trước lớn)

.card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }80

Trong trường hợp này, hình ảnh sẽ không bị thay đổi kích thước, không bị kéo giãn hay bị nén. Nó hoạt động giống như giá trị

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
81, nhưng nó không tôn trọng tỷ lệ khung hình của vùng chứa nó

Hình nền css chiều cao đầy đủ
Khi sử dụng
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
80, hình ảnh sẽ không bị thay đổi kích thước nếu kích thước của nó không giống nhau. (Xem trước lớn)

Ngoài

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2, chúng tôi cũng có thuộc tính
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
84, chịu trách nhiệm định vị một hình ảnh trong vùng chứa của nó

Giá trị có thể cho .card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }84

Thuộc tính

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
84 hoạt động tương tự như thuộc tính
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
87 của CSS

Hình nền css chiều cao đầy đủ
Hầu hết thời gian, giá trị mặc định được sử dụng (i. e. `trung tâm` hoặc `50% 50%`). (Xem trước lớn)

Các từ khóa

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
88 và
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
89 cũng hoạt động khi tỷ lệ khung hình của hộp chứa lớn hơn theo chiều dọc

Hình nền css chiều cao đầy đủ
So sánh
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
80 (trái) và
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
81 (phải). (Xem trước lớn)

CSS .card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }3

Với

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
3, điểm khác biệt đầu tiên là chúng ta đang xử lý nền chứ không phải phần tử HTML (
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
5)

Giá trị có thể có cho .card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }3

Các giá trị có thể có của

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
3 là
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
87,
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
88 và
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
81

.card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }80

Với

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
87, hình ảnh sẽ giữ nguyên kích thước mặc định

Hình nền css chiều cao đầy đủ
Hãy nhớ rằng kích thước mặc định đôi khi có thể dẫn đến hình ảnh bị mờ (nếu nó quá nhỏ). (Xem trước lớn)

.card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }82

Tại đây, hình ảnh sẽ được thay đổi kích thước để phù hợp với vùng chứa. Nếu tỷ lệ khung hình không giống nhau, thì hình ảnh sẽ được che cho phù hợp

Hình nền css chiều cao đầy đủ
Khi sử dụng
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
82, đảm bảo xem xét tỷ lệ khung hình của hình ảnh. (Xem trước lớn)

.card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }84

Trong trường hợp này, hình ảnh sẽ được thay đổi kích thước để vừa với vùng chứa. Nếu tỷ lệ khung hình bị tắt thì hình ảnh sẽ có hộp chữ như minh họa trong ví dụ tiếp theo

Hình nền css chiều cao đầy đủ
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
84 thay đổi kích thước hình ảnh để vừa với vùng chứa. (Xem trước lớn)

Đối với

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
87, nó tương tự như cách thức hoạt động của
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
84. Sự khác biệt duy nhất là vị trí mặc định của
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
84 khác với vị trí của
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
87

Khi nào thì không nên sử dụng .card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }2 hoặc .card__thumb { position: relative; padding-bottom: 75%; height: 0; } .card__thumb img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }3

Nếu phần tử hoặc hình ảnh được cung cấp chiều cao cố định và áp dụng

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
82 hoặc
.card__thumb img {
    aspect-ratio: 4 / 3;
}
6 cho phần tử hoặc hình ảnh, thì sẽ có một điểm mà hình ảnh sẽ quá rộng, do đó mất đi các chi tiết quan trọng có thể ảnh hưởng đến cách người dùng cảm nhận hình ảnh

Xem xét ví dụ sau trong đó hình ảnh có chiều cao cố định

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2
Hình nền css chiều cao đầy đủ
Hình ảnh hiển thị bên phải quá rộng vì nó có chiều cao cố định trong khi hộp chứa thẻ quá rộng. (Xem trước lớn)

Nếu vùng chứa của thẻ quá rộng, nó sẽ dẫn đến những gì chúng ta thấy ở bên phải (hình ảnh quá rộng). Đó là bởi vì chúng tôi không chỉ định tỷ lệ khung hình

Chỉ có một trong hai bản sửa lỗi cho điều này. Đầu tiên là sử dụng hack đệm để tạo tỷ lệ nội tại

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

Cách khắc phục thứ hai là sử dụng thuộc tính CSS mới

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
44. Sử dụng nó, chúng ta có thể làm như sau

________số 8

Ghi chú. Tôi đã viết chi tiết về bất động sản

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
44 trong trường hợp bạn muốn tìm hiểu về nó. “Hãy tìm hiểu về tỷ lệ khung hình trong CSS”

Các trường hợp sử dụng và ví dụ

Hình đại diện người dùng

Trường hợp sử dụng hoàn hảo cho

.card__thumb img {
    aspect-ratio: 4 / 3;
}
6 là hình đại diện của người dùng. Tỷ lệ khung hình được phép cho hình đại diện thường là hình vuông. Đặt một hình ảnh trong một thùng chứa hình vuông có thể làm biến dạng hình ảnh

Hình nền css chiều cao đầy đủ
So sánh hình đại diện người dùng không có
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2 và có
.card__thumb img {
    aspect-ratio: 4 / 3;
}
6. (Xem trước lớn)
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
8

Liệt kê các khách hàng của một doanh nghiệp là quan trọng. Chúng tôi sẽ thường sử dụng logo cho mục đích này. Vì các logo sẽ có các kích cỡ khác nhau, nên chúng tôi cần một cách để thay đổi kích thước của chúng mà không làm biến dạng chúng

Rất may,

.card__thumb img {
    aspect-ratio: 4 / 3;
}
4 là một giải pháp tốt cho điều đó

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
8
Hình nền css chiều cao đầy đủ
Việc sử dụng
.card__thumb img {
    aspect-ratio: 4 / 3;
}
4 có thể giúp chúng tôi thay đổi kích thước biểu trưng của khách hàng mà không làm biến dạng chúng. (Xem trước lớn)

Hình thu nhỏ bài viết

Đây là một trường hợp sử dụng rất phổ biến. Vùng chứa cho hình thu nhỏ của bài viết có thể không phải lúc nào cũng có hình ảnh có cùng tỷ lệ khung hình. Sự cố này phải được hệ thống quản lý nội dung (CMS) khắc phục ngay từ đầu, nhưng không phải lúc nào cũng vậy

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
8
Hình nền css chiều cao đầy đủ
Điều chỉnh hình thu nhỏ của bài viết với một chút trợ giúp từ
.card__thumb img {
    aspect-ratio: 4 / 3;
}
6. (Xem trước lớn)

nền anh hùng

Trong trường hợp sử dụng này, quyết định sử dụng phần tử

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
5 hay nền CSS sẽ phụ thuộc vào những điều sau

  • Hình ảnh có quan trọng không?
  • Hay mục đích của hình ảnh chỉ đơn thuần là trang trí?

Dựa trên câu trả lời của chúng tôi, chúng tôi có thể quyết định sử dụng tính năng nào. Nếu hình ảnh là quan trọng

Hình nền css chiều cao đầy đủ
Giả sử rằng hình ảnh là quan trọng, bởi vì đó là một trang web liên quan đến thực phẩm. 😉 (Xem trước lớn)
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
4
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
8

Nếu hình ảnh mang tính trang trí, chúng ta có thể sử dụng

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
83

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
0

CSS ngắn hơn trong trường hợp này. Đảm bảo rằng mọi văn bản được đặt trên hình ảnh đều có thể đọc được và truy cập được

Thêm nền vào hình ảnh với .card__thumb img { aspect-ratio: 4 / 3; }4

Bạn có biết rằng bạn có thể thêm màu nền cho

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
5 không?

Trong ví dụ bên dưới, chúng ta có một lưới các hình ảnh. Khi tỷ lệ khung hình của hình ảnh và vùng chứa khác nhau, màu nền sẽ xuất hiện

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
4
Hình nền css chiều cao đầy đủ
Chúng ta có thể sử dụng
.card__thumb img {
    aspect-ratio: 4 / 3;
}
4 để thêm màu nền cho hình ảnh. (Xem trước lớn)

Phần tử video

Bạn đã bao giờ cần một

.card__thumb img {
    aspect-ratio: 4 / 3;
}
0 làm nền chưa?

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
0
Hình nền css chiều cao đầy đủ
Giá trị
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2 mặc định cho phần tử
.card__thumb img {
    aspect-ratio: 4 / 3;
}
0 là
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
88. Như bạn có thể thấy ở đây, video không bao gồm bối cảnh anh hùng, mặc dù nó có
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
02,
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
03 và
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
04. (Xem trước lớn)

Để làm cho nó bao phủ toàn bộ chiều rộng và chiều cao của cha mẹ, chúng ta cần ghi đè giá trị mặc định

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
1
Hình nền css chiều cao đầy đủ
Bây giờ, video bao gồm toàn bộ chiều rộng và chiều cao của video gốc. (Xem trước lớn)

Phần kết luận

Như chúng ta đã thấy, cả

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
2 và
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
3 đều rất hữu ích để xử lý các tỷ lệ khung hình khác nhau của hình ảnh. Không phải lúc nào chúng tôi cũng có quyền kiểm soát việc đặt kích thước hoàn hảo cho từng hình ảnh và đó là lúc hai tính năng CSS này tỏa sáng

Lời nhắc thân thiện về ý nghĩa trợ năng của việc chọn giữa phần tử

.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
5 và nền CSS. Nếu hình ảnh hoàn toàn là trang trí, thì hãy sử dụng nền CSS. Mặt khác, một
.card__thumb {
    position: relative;
    padding-bottom: 75%;
    height: 0;
}

.card__thumb img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
5 phù hợp hơn