Setelah menguji berbagai skenario, saya yakin ini adalah solusi terbaik:
html {
width: 100%;
height: 100%;
display: table;
}
body {
width: 100%;
display: table-cell;
}
html, body {
margin: 0px;
padding: 0px;
}
Ini dinamis karena elemen html
- body
elemen akan berkembang secara otomatis jika isinya meluap. Saya menguji ini di versi terbaru dari Firefox, Chrome, dan IE 11.
Lihat biola penuh di sini (untuk pembenci meja Anda di luar sana, Anda selalu dapat mengubahnya untuk menggunakan div):
https://jsfiddle.net/71yp4rh1/9/
Dengan itu, ada beberapa masalah dengan jawaban yang diposting di sini .
html, body {
height: 100%;
}
Menggunakan CSS di atas akan menyebabkan html dan elemen tubuh TIDAK secara otomatis meluas jika isinya meluap seperti yang ditunjukkan di sini:
https://jsfiddle.net/9vyy620m/4/
Saat Anda menggulir, perhatikan latar belakang berulang? Hal ini terjadi karena ketinggian elemen tubuh BUKAN meningkat karena meja anaknya meluap. Mengapa tidak berkembang seperti elemen blok lainnya? Saya tidak yakin. Saya pikir browser salah menangani ini.
html {
height: 100%;
}
body {
min-height: 100%;
}
Mengatur ketinggian minimum 100% pada tubuh seperti ditunjukkan di atas menyebabkan masalah lain. Jika Anda melakukan ini, Anda tidak dapat menentukan bahwa div anak atau tabel mengambil persentase tinggi seperti yang ditunjukkan di sini:
https://jsfiddle.net/aq74v2v7/4/
Semoga ini bisa membantu seseorang. Saya pikir browser menangani ini dengan tidak benar. Saya berharap tinggi tubuh secara otomatis menyesuaikan tumbuh lebih besar jika anak-anak meluap. Namun, itu tampaknya tidak terjadi ketika Anda menggunakan tinggi 100% dan lebar 100%.