Я просто хочу добавить - большинство других ответов работало для меня нормально;однако, это заняло много времени, чтобы заставить их работать!
Это потому, что установка height: 100%
учитывает только высоту родительского div!
Так что, если весь ваш HTML (внутри тела) выглядиткак следующее:
<div id="holder">
<header>.....</header>
<div id="body">....</div>
<footer>....</footer>
</div>
Тогда будет хорошо следующее:
html,body{
height: 100%
}
#holder{
min-height: 100%;
position:relative;
}
#body{
padding-bottom: 100px; /* height of footer */
}
footer{
height: 100px;
width:100%;
position: absolute;
left: 0;
bottom: 0;
}
... так как "держатель" поднимет его высоту непосредственно от "тела".
Слава моей голове болит, чей ответ был тот, который я закончил тем, что получил работу!
Однако. Если ваш html более вложенный (потому что этотолько элемент полной страницы, или он находится в определенном столбце и т. д.), тогда вам нужно убедиться, что каждый содержащий элемент также имеет height: 100%
, установленный в div.В противном случае информация о высоте будет потеряна между «body» и «holder».
Например, следующее, где я добавил класс «full height» для каждого div, чтобы убедиться, что высота получает всевплоть до наших элементов header / body / footer:
<div class="full-height">
<div class="container full-height">
<div id="holder">
<header>.....</header>
<div id="body">....</div>
<footer>....</footer>
</div>
</div>
</div>
И не забудьте установить высоту для класса полной высоты в css:
#full-height{
height: 100%;
}
Это исправило мои проблемы!