Добрый день! А подскажите пожалуйста каким образом можно прижать футер книзу страницы, при условии, что футер должен быть частью основного блока, который располагается по центру страницы и сверху/снизу от него должны быть отступы. Пробовал этот способ - не помогло, так как там футер получается отдельно от основного блока, и получается что футер как бы "вываливается". сайт о котором идет речь http://yarrsk.ru/
upd! спасибо всем за ответы, но похоже решил данную проблему сам, определяем главный блок как таблицу, внутренний блок футера превращаем в строку этой таблицы, дополнительно вертикально выравниваем по низу:
<div id="wrap">
<div id="header">...</div>
<div id="section">...</div>
<div id="footer">...</div>
</div>
html, body {height: calc(100% - 16px);}
body {margin: 16px;}
#wrap {display: table; position: relative; height: 100%; min-height: 100% !important; margin: auto;}
#footer {display: table-row; vertical-align: bottom; position: relative; height: 144px;}
upd2! Почему то после того как блок футера превратил в строку таблицы, к нему перестали применяться паддинги и маргины, хз что делать, решил просто обернуть еще в один блок:
<div id="wrap">
<div id="header">...</div>
<div id="section">...</div>
<div id="footer">
<div id="footer_section">...</div>
</div>
</div>
html, body {height: calc(100% - 16px);}
body {margin: 16px;}
#wrap {display: table; position: relative; height: 100%; min-height: 100% !important; margin: auto;}
#footer {display: table-row; vertical-align: bottom; position: relative; height: 144px;}
#footer_section {display: block; padding: 16px}
Если футер фиксированного размера, скажем 10em, то можно вот так:
<div class="page-content">
Content!
</div>
<footer class="page-footer">
I'm the Sticky Footer.
</footer>
* {
margin: 0;
}
html, body {
height: 100%;
}
.page-content {
min-height: 100%;
margin-bottom: -10em;
}
.page-content:after {
content: "";
display: block;
}
.page-footer, .page-content:after {
height: 10em;
}
.page-footer {
background: orange;
}
<div class="wrap">
...
<div class="footer">
Я футер
</div>
</div>
html, body {
min-width: 100%;
}
.wrap {
min-height: 100%;
position: relative;
padding-bottom: 100px;
}
.footer {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 100px;
}
...при условии, что футер должен быть частью основного блока, который располагается по центру страницы и сверху/снизу от него должны быть отступы.
Основное правило гласит, что все старшие и соседние элементы страницы должны быть с процентными стилями. Если, конечно, хотите сделать это на CSS без JS. Например, даже футер Хабра прилепляется к низу, если скриптами и юзерстилями записать резметке страницы такие правила. Бывает такая раскладка, что процентные стили расставить будет невозможно.
В Вашем случае - то, что по центру (по горизонтали) - несущественно. А вот Хедер и футер у вас должны быть сделаны 0% высоты, а остальными стилями вставить в них нужную ненулевую высоту блоков. Пример того, как это делается со страницами Хабра, описан здесь: http://habrahabr.ru/post/151320/ чтобы увидеть, как работает - поставить скрипт (лучше на Firefox или старую Оперу, там надёжнее работало) и перейти на короткую страницу, например, эту https://auth.habrahabr.ru/settings/privacy/ (до вчера работали QA, где было много коротких страниц). Так же будут работать и короткие статьи и прочее, например, страница подготовки статьи.