Після тестування різних сценаріїв я вважаю, що це найкраще рішення:
html {
width: 100%;
height: 100%;
display: table;
}
body {
width: 100%;
display: table-cell;
}
html, body {
margin: 0px;
padding: 0px;
}
Динамічно тим, що html
і body
елементи автоматично розширяться, якщо їх вміст переповнюється. Я перевірив це в останній версії Firefox, Chrome та IE 11.
Дивіться повну скрипку тут (для вас ненависні таблиці, ви завжди можете змінити її, щоб використовувати div):
https://jsfiddle.net/71yp4rh1/9/
З урахуванням цього, тут є кілька питань з відповідями, розміщеними тут .
html, body {
height: 100%;
}
Використання вищевказаного CSS призведе до того, що html та елемент body НЕ автоматично розширюються, якщо їх вміст переповнюється, як показано тут:
https://jsfiddle.net/9vyy620m/4/
Під час прокрутки помічаєте повторюваний фон? Це відбувається тому, що зріст елемента кузова НЕ збільшився через переповнення його дочірнього столу. Чому він не розширюється, як будь-який інший блок-елемент? Я не впевнений. Я думаю, що браузери поводяться з цим неправильно.
html {
height: 100%;
}
body {
min-height: 100%;
}
Встановлення на корпусі мінімальної висоти 100%, як показано вище, викликає інші проблеми. Якщо ви це зробите, ви не можете вказати, що дочірня таблиця або таблиця займає висоту відсотка, як показано тут:
https://jsfiddle.net/aq74v2v7/4/
Сподіваюся, що це комусь допоможе. Я думаю, що браузери поводяться з цим неправильно. Я б очікував, що зріст тіла автоматично регулюється зростаючим, якщо його діти переповнені. Однак, здається, це не відбувається, коли ви використовуєте 100% висоту і 100% ширину.