Я просто хочу додати - більшість інших відповідей спрацювали мені добре; однак пройшло багато часу, щоб вони працювали!
Це тому, що налаштування height: 100%
лише набирає висоту батьківського діва!
Отже, якщо весь ваш 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 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
, хоча це буде не найкращим способом зробити це