Я использовал это, чтобы прикрепить нижний колонтитул к нижней части, и это сработало для меня:
HTML
<body>
<div class="allButFooter">
<!-- Your page's content goes here, including header, nav, aside, everything -->
</div>
<footer>
<!-- Footer content -->
</footer>
</body>
Это единственное изменение, которое вы должны сделать в HTML, добавьте это div
вместе с "allButFooter"
классом. Я сделал это со всеми страницами, которые были такими короткими, что я знал, что нижний колонтитул не будет прилипать к нижней части страницы, а также достаточно долго, чтобы я знал, что мне нужно прокрутить. Я сделал это, так что я мог видеть, что это работает нормально в случае, если содержимое страницы является динамическим.
CSS
.allButFooter {
min-height: calc(100vh - 40px);
}
У "allButFooter"
класса есть min-height
значение, которое зависит от высоты области просмотра ( 100vh
означает 100% высоты области просмотра) и высоты нижнего колонтитула, о которой я уже знал 40px
.
Это все, что я сделал, и это отлично сработало для меня. Я не пробовал это в каждом браузере, только в Firefox, Chrome и Edge, и результаты были такими, как я хотел. Нижний колонтитул прилипает к нижней части, и вам не нужно связываться с z-index, position или какими-либо другими свойствами. Положение каждого элемента в моем документе было положением по умолчанию, я не менял его на абсолютный, фиксированный или на что-либо еще.
Работа с адаптивным дизайном
Вот кое-что, что я хотел бы прояснить. Это решение с тем же нижним колонтитулом высотой 40px не сработало, как я ожидал, когда работал над адаптивным дизайном с использованием Twitter-Bootstrap
. Мне пришлось изменить значение, которое я вычитал в функции:
.allButFooter {
min-height: calc(100vh - 95px);
}
Вероятно, это связано Twitter-Bootstrap
с тем, что он имеет собственные поля и отступы, поэтому мне пришлось настроить это значение.
Надеюсь, это вам пригодится, ребята! По крайней мере, это простое решение, и оно не требует больших изменений во всем документе.