Có một vài đơn vị đo lường CSS 3 được gọi là:
Độ dài tỷ lệ phần trăm của Viewport là gì?
Từ Khuyến nghị của Ứng viên W3 được liên kết ở trên:
Độ dài phần trăm khung nhìn liên quan đến kích thước của khối chứa ban đầu. Khi chiều cao hoặc chiều rộng của khối chứa ban đầu bị thay đổi, chúng được chia tỷ lệ tương ứng.
Các đơn vị này là vh
(chiều cao khung nhìn), vw
(chiều rộng khung nhìn), vmin
(chiều dài tối thiểu của khung nhìn) và vmax
(chiều dài tối đa của khung nhìn).
Làm thế nào điều này có thể được sử dụng để làm một dải phân cách lấp đầy chiều cao của trình duyệt?
Đối với câu hỏi này, chúng tôi có thể sử dụng vh
: 1vh
bằng 1% chiều cao của khung nhìn. Điều đó có nghĩa là, 100vh
bằng với chiều cao của cửa sổ trình duyệt, bất kể phần tử nằm ở đâu trong cây DOM:
HTML
<div></div>
CSS
div {
height: 100vh;
}
Đây thực sự là tất cả những gì cần thiết. Dưới đây là một ví dụ về JSFiddle về điều này được sử dụng.
Những trình duyệt nào hỗ trợ các đơn vị mới này?
Điều này hiện được hỗ trợ trên tất cả các trình duyệt chính cập nhật ngoài Opera Mini. Kiểm tra Tôi có thể sử dụng ... để được hỗ trợ thêm.
Làm thế nào điều này có thể được sử dụng với nhiều cột?
Trong trường hợp câu hỏi có sẵn, có một dải phân cách bên trái và bên phải, đây là một ví dụ về JSFiddle hiển thị bố cục hai cột liên quan đến cả hai vh
và vw
.
Làm thế nào là 100vh
khác nhau 100%
?
Lấy bố cục này làm ví dụ:
<body style="height:100%">
<div style="height:200px">
<p style="height:100%; display:block;">Hello, world!</p>
</div>
</body>
Các p
từ khóa ở đây được thiết lập đến 100% chiều cao, nhưng vì có chứa nó div
có 200 pixel chiều cao, 100% 200 pixel trở thành 200 pixel, không 100% của body
chiều cao. Sử dụng 100vh
thay thế có nghĩa là p
thẻ sẽ có chiều cao 100% body
bất kể div
chiều cao. Hãy xem JSFiddle đi kèm này để dễ dàng thấy sự khác biệt!