#css
#css
Вопрос:
Вот JSFiddle:http://jsfiddle.net/W2UvH/1 /
Очень простая реализация липкого нижнего колонтитула, который должен прилипать к нижней части экрана, когда высота содержимого меньше высоты экрана. Но если высота содержимого выходит за пределы высоты экрана, то нижний колонтитул должен следовать за ним.
Я не понимаю, почему мой нижний колонтитул останавливается на полпути вверх по экрану.
HTML:
<div id="Canvas">
<div id="Container">
<div id="Wrapper">
</div>
</div>
</div>
<div id="SiteFooter">
<p>Copyright © All Rights Reserved.</p>
</div>
CSS:
body, html {
height: 100%;
}
#Canvas {
position: relative;
min-height: 100%;
}
#Container {
margin: auto;
background-color: #CCC;
max-width: 802px;
padding: 15px 0;
}
#Wrapper {
margin-right: auto;
margin-left: auto;
margin-top: 15px;
width: 730px;
background-color: #999;
border: 1px solid #DEDEDE;
overflow: hidden;
height: 1000px;
}
#SiteFooter {
bottom: 0;
left: 0;
position: absolute;
width: 100%;
z-index: 9000;
background-color: #FF00FF;
height: 45px;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #E0E0E0;
}
Ответ №1:
Я вижу, что все остальные ваши элементы имеют относительные позиции. Итак, не уверен, какова ваша точная реализация, но:
#SiteFooter {
position: relative;
}
Приведенный выше код также должен сделать это за вас.
Комментарии:
1. Это сработало довольно хорошо! Я также добавил
margin-bottom: -45px;
в#Canvas
div, потому что в противном случае нижний колонтитул, казалось, находился на расстоянии 45 пикселей от нижней части экрана, хотя#Wrapper
он занимал только четверть экрана по высоте.
Ответ №2:
Вы хотите, чтобы позиция была фиксированной, а не абсолютной.
#SiteFooter {
position: fixed;
}
Комментарии:
1. Да, это заставляет его прилипать к нижней части экрана, но не к нижней части содержимого. Если содержимое превышает высоту экрана, нижний колонтитул по-прежнему отображается в том же месте. Я хочу, чтобы нижний колонтитул следовал за содержимым ТОЛЬКО тогда, когда содержимое превышает высоту экрана.