Как только Вы задаете элементу свойство position : absolute, Вы выдергиваете его отрисовку из общей последовательности. То есть если у Вас будет большая страница, Вам придется ручками регулировать ее высоту, чтобы не возникло "залезания футера на контент". В наше время вполне уже можно сделать так:
<body style="display: flex; flex-direction: column; height: 100%; height: -webkit-fill-available;">
<div style="flex: 1 0 auto;">
Здесь весь контент Вашего сайта
</div>
<footer style="flex: 0 0 auto;">
Здесь футер
</footer>
</body>
естественно, поддержка каких-нибудь очень-очень старых браузеров отпадает, так что на кросс-браузерность решения не претендую, но в остальном такая верстка прекрасно себя чувствует.
P.S. спустя 6 месяцев от ответа - интересно, почему столько минусов, если из всех ответов на вопрос мой - единственный рабочий :D
ну и да, если требовался на самом деле вариант прикленного футера, то
<div class="wrapper">
<!-- все блоки сайта, что угодно -->
<div class="footer">
<!-- содержимое футера -->
</div>
</div>
и в CSS:
.wrapper {
padding-bottom : 50px;
}
.footer {
position : fixed;
height : 50px;
bottom : 0;
}
P.P.S. если совсем уж по-хорошему делать, то конечно вместо <div class="footer"> надо использовать просто <footer>
Как только высота подвала становится "плавающей" то подвал становится поверх контента. Вариант плохой
Футер или "подвал" сайта прижимают к низу страницы с помощью правил каскадных стилей CSS. Но сейчас вся верстка идет в стандарте HTML5, а там предусмотрен функциональный тег <footer>. Так что задачу можно решить, обернув "подвал" в специальный тег и встроив его в верстку.
ах если бы всё так просто было
Лепим футер к низу на 0px, а перед ним подставляем нужной высоты блок, чтобы прокручивался до конца контент...
<div class="otstup"></div>
<div class="lepim"></div>
.otstup{padding-bottom: 50px;float:center;width:100%;height:50px;background:none;}
.lepim{position: fixed; bottom: 0; float:center;width:100%;height:50px;}
Футер же залазить на контент будет :/