Для того чтобы получить высоту процента CSS, родитель элемента должен иметь определенную высоту. В результате мы можем сделать это с помощью следующей разметки:
<body>
<div id="content">
<div id="header">Header</div>
<div id="text">
Text content of your page
</div>
</div>
<div id="footer">Footer</div>
</body>
Всех материалов сайта за исключением сноски содержится в #content
элементе. Затем он использует объявление min-height: 100%
, чтобы быть всегда не менее 100% от его родительской высоты. Поскольку его родительский элемент является телом и имеет объявление высоты, это работает так, как ожидалось.
Наконец нижний колонтитул представлен с отрицательным отрывом, а нижний нижний добавлен к элементу #text
, поэтому его содержимое не случайно перекрывается.
CSS-выглядит следующим образом:
html, body {
height: 100%;
padding: 0;
margin: 0;
}
#content {
min-height: 100%;
/* IE6 will need height: 100% defined in an IE6 only stylesheet */
}
#header, #footer {
height: 100px;
}
/* Bring the footer into view */
#footer {
margin-top: -100px; /* footer's height */
}
/* Make sure footer doesn't overlap #text element */
#text {
padding-bottom: 100px; /* footer's height */
}
Вы можете увидеть его in action here. Если вы добавите больше текста наполнителя, вы увидите, что нижний колонтитул правильно сдвинут вниз.
что вы подразумеваете под динамической высоты? – Tgr
Вы пытаетесь сделать верхний и нижний колонтитулы видимыми во все времена, как приклеивались к экрану? Попробуйте зафиксировать позицию. Если вы просто хотите, чтобы нижний колонтитул находился в нижней части страницы, независимо от того, насколько высока область просмотра. Http://ryanfait.com/sticky-footer/ – Keyo