Tôi đang làm việc trên một ứng dụng web nơi tôi muốn nội dung lấp đầy chiều cao của toàn bộ màn hình.
Trang này có một tiêu đề, chứa logo và thông tin tài khoản. Đây có thể là một chiều cao tùy ý. Tôi muốn div nội dung điền phần còn lại của trang xuống dưới cùng.
Tôi có một tiêu đề divvà một nội dung div. Hiện tại tôi đang sử dụng một bảng để bố trí như vậy:
CSS và HTML
#page {
height: 100%; width: 100%
}
#tdcontent {
height: 100%;
}
#content {
overflow: auto; /* or overflow: hidden; */
}
<table id="page">
<tr>
<td id="tdheader">
<div id="header">...</div>
</td>
</tr>
<tr>
<td id="tdcontent">
<div id="content">...</div>
</td>
</tr>
</table>
Toàn bộ chiều cao của trang được lấp đầy và không cần cuộn.
Đối với mọi thứ bên trong div nội dung, cài đặt top: 0;sẽ đặt nó ngay bên dưới tiêu đề. Đôi khi nội dung sẽ là một bảng thực, với chiều cao được đặt thành 100%. Đưa headervào bên trong contentsẽ không cho phép điều này làm việc.
Có cách nào để đạt được hiệu quả tương tự mà không cần sử dụng tablekhông?
Cập nhật:
Các yếu tố bên trong nội dung divcũng sẽ có chiều cao được đặt thành tỷ lệ phần trăm. Vì vậy, một cái gì đó ở 100% bên trong divsẽ điền nó vào dưới cùng. Như hai yếu tố sẽ ở mức 50%.
Cập nhật 2:
Chẳng hạn, nếu tiêu đề chiếm 20% chiều cao của màn hình, một bảng được chỉ định ở mức 50% bên trong #contentsẽ chiếm 40% không gian màn hình. Cho đến nay, bọc toàn bộ thứ trong một cái bàn là thứ duy nhất hoạt động.



display:tablevà các thuộc tính liên quan, xem câu trả lời này cho một câu hỏi rất giống nhau.