Saya sedang mengerjakan aplikasi web di mana saya ingin konten mengisi ketinggian seluruh layar.
Halaman memiliki tajuk, yang berisi logo, dan informasi akun. Ini bisa menjadi ketinggian yang sewenang-wenang. Saya ingin div konten untuk mengisi sisa halaman ke bawah.
Saya memiliki header divdan konten div. Saat ini saya menggunakan tabel untuk tata letak seperti:
CSS dan 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>
Seluruh ketinggian halaman diisi, dan tidak perlu menggulir.
Untuk apa pun di dalam div konten, pengaturan top: 0;akan meletakkannya tepat di bawah header. Terkadang kontennya berupa tabel sungguhan, dengan ketinggian diatur hingga 100%. Menempatkan ke headerdalam contenttidak akan memungkinkan ini berfungsi.
Apakah ada cara untuk mencapai efek yang sama tanpa menggunakan table?
Memperbarui:
Elemen-elemen di dalam konten divakan memiliki ketinggian yang diatur ke persentase juga. Jadi sesuatu di 100% di dalamnya divakan mengisinya ke bawah. Seperti halnya dua elemen pada 50%.
Pembaruan 2:
Misalnya, jika tajuk mengambil 20% dari tinggi layar, tabel yang ditentukan 50% di dalamnya #contentakan memakan 40% dari ruang layar. Sejauh ini, membungkus seluruh hal dalam sebuah tabel adalah satu-satunya hal yang berhasil.



display:tabledan properti terkait, lihat jawaban ini untuk pertanyaan yang sangat mirip.