Я просто хочу добавить - большинство других ответов отлично сработали для меня; однако, это заняло много времени, чтобы заставить их работать!
Это связано с тем, что настройка определяет 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. В противном случае информация о высоте будет потеряна между «телом» и «держателем».
Например, следующее, где я добавил класс «полная высота» к каждому элементу 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%;
}
Это исправило мои проблемы!
position:fixed
, хотя это не самый лучший способ сделать это