aspect-ratio

Baseline Widely available

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

Tính năng media CSS aspect-ratio có thể được dùng để kiểm tra aspect ratio (tỉ lệ khung hình) của viewport (vùng hiển thị).

Cú pháp

Tính năng aspect-ratio được chỉ định dưới dạng giá trị <ratio> đại diện cho tỉ lệ chiều rộng trên chiều cao của viewport. Đây là tính năng phạm vi, nghĩa là bạn cũng có thể sử dụng các biến thể có tiền tố min-aspect-ratiomax-aspect-ratio để truy vấn các giá trị tối thiểu và tối đa tương ứng.

Ví dụ

Trong ví dụ dưới đây, một phần tử <div> được chứa trong một <iframe>. iframe tạo ra viewport riêng của nó. Hãy thay đổi kích thước <iframe> để xem aspect-ratio hoạt động.

Lưu ý rằng khi không có điều kiện truy vấn media nào là đúng, nền sẽ chuyển sang màu trắng vì không có quy tắc nào dưới đây sẽ được áp dụng cho <div> bên trong <iframe>. Hãy xem bạn có thể tìm ra giá trị chiều rộng và chiều cao nào kích hoạt điều này!

HTML

html
<iframe
  id="outer"
  srcdoc="<div id='inner'>Hãy quan sát phần tử này khi bạn thay đổi kích thước chiều rộng và chiều cao của viewport iframe.</div>">
</iframe>

CSS

css
/* Tỉ lệ khung hình tối thiểu được phép */
/* Chọn tỉ lệ khung hình 8/5 = 1.6 trở lên */
@media (min-aspect-ratio: 8/5) {
  div {
    background: #9999ff; /* xanh lam */
  }
}

/* Tỉ lệ khung hình tối đa được phép */
/* Chọn tỉ lệ khung hình 3/2 = 1.5 trở xuống */
@media (max-aspect-ratio: 3/2) {
  div {
    background: #99ff99; /* xanh lá */
  }
}

/* Tỉ lệ khung hình chính xác, đặt ở cuối để tránh bị ghi đè */
@media (aspect-ratio: 1/1) {
  div {
    background: #ff9999; /* đỏ */
  }
}

Kết quả

Lưu ý rằng min-aspect-ratio: 8/5 đặt cận dưới là 1.6, vì vậy truy vấn media này chọn các phần tử có tỉ lệ khung hình từ 1.6 trở lên. max-aspect-ratio: 3/2 đặt cận trên, vì vậy truy vấn media này chọn các phần tử có tỉ lệ khung hình từ 1.5 trở xuống. aspect-ratio: 1/1 ghi đè quy tắc tỉ lệ khung hình tối đa vì nó được khai báo sau và chọn các phần tử có tỉ lệ khung hình chính xác là 1.

Từ trạng thái ban đầu, khi bạn giảm chiều cao, tỉ lệ khung hình bắt đầu tăng từ một. Vì vậy màu nền của div thay đổi từ đỏ(1) < xanh lá(1.5) < trắng < xanh lam(1.6).

Đặc tả

Thông số kỹ thuật
Media Queries Level 4
# aspect-ratio

Tương thích trình duyệt

Xem thêm