orientation

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 orientation trong CSS có thể được dùng để kiểm tra hướng của viewport (hoặc hộp trang, đối với phương tiện phân trang).

Note: Tính năng này không tương ứng với hướng thiết bị. Mở bàn phím mềm trên nhiều thiết bị ở hướng dọc (portrait) sẽ khiến viewport trở nên rộng hơn chiều cao, do đó khiến trình duyệt sử dụng kiểu landscape thay vì portrait.

Cú pháp

Tính năng orientation được xác định bởi một trong các giá trị từ khóa dưới đây.

Giá trị từ khóa

portrait

Viewport ở hướng dọc (portrait), tức là chiều cao lớn hơn hoặc bằng chiều rộng.

landscape

Viewport ở hướng ngang (landscape), tức là chiều rộng lớn hơn chiều cao.

Ví dụ

Hướng dọc (Portrait)

Trong ví dụ này, chúng ta có ba hộp trong HTML và sử dụng tính năng media orientation để chuyển đổi giữa bố cục hàng (landscape) và bố cục cột (portrait).

Kết quả ví dụ được nhúng trong một <iframe> có chiều cao lớn hơn chiều rộng, vì vậy các hộp sẽ có bố cục cột.

HTML

html
<div>Box 1</div>
<div>Box 2</div>
<div>Box 3</div>

CSS

css
body {
  display: flex;
}

div {
  background: yellow;
  width: 200px;
  height: 200px;
  margin: 0.5rem;
  padding: 0.5rem;
}

@media (orientation: landscape) {
  body {
    flex-direction: row;
  }
}

@media (orientation: portrait) {
  body {
    flex-direction: column;
  }
}

Kết quả

Hướng ngang (Landscape)

Ví dụ này có cùng mã với ví dụ trước: nó có ba hộp trong HTML và sử dụng tính năng media orientation để chuyển đổi giữa bố cục hàng (landscape) và bố cục cột (portrait).

Tuy nhiên, trong ví dụ này, kết quả được nhúng trong một <iframe> có chiều cao nhỏ hơn chiều rộng, vì vậy các hộp sẽ có bố cục hàng.

HTML

html
<div>Box 1</div>
<div>Box 2</div>
<div>Box 3</div>

CSS

css
body {
  display: flex;
}

div {
  background: yellow;
  width: 200px;
  height: 200px;
  margin: 0.5rem;
  padding: 0.5rem;
}

@media (orientation: landscape) {
  body {
    flex-direction: row;
  }
}

@media (orientation: portrait) {
  body {
    flex-direction: column;
  }
}

Đặc tả kỹ thuật

Specification
Media Queries Level 4
# orientation

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