ОБНОВЛЕНИЕ 2
Поэтому, когда содержимое в #main
увеличивается, оно должно сдвинуть нижний колонтитул, например, так:
![scroll](https://i.stack.imgur.com/VKu73.png)
... такнижний колонтитул не должен быть position: fixed;
.Он должен быть внизу, когда не хватает контента, и должен быть опущен вниз, когда контента больше, чем высота страницы.
В обоих сценариях #sidebar
необходимо охватить высоту снизуот #header
до верхней части #footer
.
ОБНОВЛЕНИЕ
Некоторая жестокая специфика ... нижний колонтитул должен быть внизу всякий раз, когда содержимое на странице небольшое, но когдасодержимое достаточно велико, оно должно сдвинуть нижний колонтитул (эта функция описана в предоставленных мною липких ссылках на нижний колонтитул).Мне нужно, чтобы боковая панель всегда была между верхним и нижним колонтитулом на полную высоту (от нижнего колонтитула до верхнего колонтитула).
Это довольно сложная задача для меня.Идеи ...?
Я пытаюсь заставить этот макет работать без с использованием JavaScript ... вот что я имею в виду в форме изображения:
ПЛОХОЙ ... текущий макет ![bad layout](https://i.stack.imgur.com/EBfoq.png)
ХОРОШО ... желаемый макет ![good layout](https://i.stack.imgur.com/HICrI.png)
Обратите внимание, как боковая панель простирается вплоть донижний колонтитул в нужном макете.Я использую липкие варианты нижнего колонтитула, http://ryanfait.com/sticky-footer/ и http://www.cssstickyfooter.com/,, и теперь мне нужно расширить боковую панель, чтобы охватить высоту от верхнего колонтитула до нижнего колонтитула.Вот что у меня есть ...
http://jsfiddle.net/UnsungHero97/2ZhpH/
... и код на случай, если jsFiddle не работает ...
HTML
<div id="wrapper">
<div id="header"><div id="header-content">Header</div></div>
<div id="content">
<div id="sidebar">Sidebar<br/>Sidebar<br/>Sidebar<br/></div>
<div id="main">Main</div>
</div>
<div class="push"></div>
</div>
<div id="footer"><div id="footer-content">Footer</div></div>
CSS
html, body {
margin: 0px;
padding: 0px;
min-height: 100%;
height: 100%;
}
#wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -50px; /* the bottom margin is the negative value of the footer's height */
}
#footer {
height: 50px;
}
#footer-content {
border: 1px solid magenta;
height: 32px; /* height + top/bottom paddding + top/bottom border must add up to footer height */
padding: 8px;
}
.push {
height: 50px;
clear: both;
}
#header {
height: 50px;
}
#header-content {
border: 1px solid magenta;
height: 32px; /* height + top/bottom paddding + top/bottom border must add up to footer height */
padding: 8px;
}
#content {
height: 100%;
}
#sidebar {
border: 1px solid skyblue;
width: 100px;
height: 100%;
float: left;
}
Есть предложения, как это сделать?Я пытался использовать position: fixed
, но такой подход становится очень уродливым, когда страница достаточно велика, и вам нужно прокрутить.