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 div
dan 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 header
dalam content
tidak akan memungkinkan ini berfungsi.
Apakah ada cara untuk mencapai efek yang sama tanpa menggunakan table
?
Memperbarui:
Elemen-elemen di dalam konten div
akan memiliki ketinggian yang diatur ke persentase juga. Jadi sesuatu di 100% di dalamnya div
akan 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 #content
akan memakan 40% dari ruang layar. Sejauh ini, membungkus seluruh hal dalam sebuah tabel adalah satu-satunya hal yang berhasil.
display:table
dan properti terkait, lihat jawaban ini untuk pertanyaan yang sangat mirip.