После тестирования различных сценариев, я считаю, что это лучшее решение:
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/
При прокрутке замечаете повторяющийся фон?Это происходит потому, что высота элемента body НЕ увеличилась из-за переполнения дочерней таблицы.Почему он не расширяется как любой другой элемент блока?Я не уверен.Я думаю, что браузеры обрабатывают это неправильно.
html {
height: 100%;
}
body {
min-height: 100%;
}
Установка минимальной высоты тела на 100%, как показано выше, вызывает другие проблемы.Если вы сделаете это, вы не сможете указать, что дочерний элемент или таблица занимают процентную высоту, как показано здесь:
https://jsfiddle.net/aq74v2v7/4/
Надеюсь, это кому-нибудь поможет.Я думаю, что браузеры обрабатывают это неправильно.Я ожидал бы, что рост тела автоматически отрегулируется, увеличиваясь, если его дети переполняются.Однако этого не происходит при использовании 100% высоты и 100% ширины.