Я просто хочу добавить - большинство других ответов у меня сработали; однако на то, чтобы они заработали, потребовалось много времени!
Это потому, что установка 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;
}
... поскольку «держатель» будет брать высоту прямо от «тела».
Престижность My Head Hurts, ответом на который я в конечном итоге добился работы!
Однако. Если ваш html более вложен (потому что это всего лишь элемент всей страницы или он находится в определенном столбце и т. д.), вам необходимо убедиться, что каждый содержащий элемент em > также имеет height: 100%
, установленное в div. В противном случае информация о высоте будет потеряна между «телом» и «держателем».
Например. следующее, где я добавил класс «полной высоты» к каждому div, чтобы убедиться, что высота достигает всех элементов заголовка / тела / нижнего колонтитула:
<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%;
}
Это устранило мои проблемы!
person
Tim L
schedule
18.10.2016
position:fixed
, хотя это будет не лучший способ сделать это - person redDevil   schedule 11.01.2012