Справка по макету CSS - растягивание в нижней части страницы
Я пытаюсь создать макет с областью заголовка, которая содержит логотип и некоторые ссылки, а затем область содержимого, которая должна быть расширена до нижней части страницы. Здесь я застреваю.
Я окружил заголовок и содержимое контейнером div, который имеет высоту 100%, это отлично работает. Но я не могу заставить контент div растягиваться до нижней части контейнера div, так как при минимальной высоте 100% он занимает высоту от тела страницы, поэтому я получаю полосу прокрутки из-за пространства поднятый в верхней части страницы заголовком.
Здесь каркас, который, надеюсь, делает то, что я пытаюсь достичь немного яснее...
![Mockup]()
Вот пример быстрого CSS, это работает, кроме того, всегда есть полоса прокрутки, в которой появляется высота области заголовка...
html, body {
height: 100%;
margin: 0;
padding: 0;
color: #fff;
}
body {
background-color: #000;
}
#container {
position: relative;
margin: 0 auto;
width: 1000px;
min-height: 100%;
}
#header {
padding-top: 26px;
}
#logo {
width: 194px;
height: 55px;
margin: 0 auto;
background-color: #fff;
}
#content {
margin-top: 10px;
position: absolute;
width: 1000px;
min-height: 100%;
background-color: #fff;
}
Ответы
Ответ 1
http://jsfiddle.net/CZayc/
это работает, обертывая заголовок и тело в div, чтобы нажимать нижний колонтитул вниз
index.html
<div id="wrap">
<div id="header">
header
</div>
<div id="main">
main<br/>main<br/>main<br/>main<br/>main<br/>main<br/>
</div>
</div>
<div id="footer">
footer
</div>
style.css
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
margin:0;
padding:0;
}
#header {
border-top:20px solid #fff;
height: 33px;
line-height: 33px;
text-align: center;
background-color: green;
}
html { height: 100%; }
body { height: 100%; width: 90%; margin: auto; }
#wrap { min-height: 100%;background-color:gray;}
#main {
overflow: auto;
padding-bottom: 53px; /* must be same height as the footer */
background-color: red;
height: 90%
}
#footer {
position: relative;
margin-top: -53px; /* negative value of footer height */
height: 33px;
line-height: 33px;
border-bottom:20px solid #fff;
text-align: center;
background-color:blue;
}
Ответ 2
Сделайте позицию div контейнера: относительную и позицию div содержимого: абсолютную. Затем дайте контент div top: < height height > и внизу: 0
Не в состоянии проверить это прямо сейчас, но я думаю, что что-то вроде этого должно работать.
Ответ 3
ограничения:
высота заголовка должна быть статической, с абсолютной высотой.
высота контента динамическая.
Код CSS:
* {
padding:0;
margin:0;
}
html, body {
height: 100%;
color: #fff;
}
#header {
background: red;
position: absolute;
z-index:20;
height: 7em;
overflow:hidden;
width:100%;
}
#content {
background: blue;
position: absolute;
top: 0;
padding-top: 7em;
min-height: 100%;
box-sizing: border-box;
}
растягивается до конца, даже когда текст короткий.
когда текст контента длиннее нашей высоты окна - мы получаем автоматическую прокрутку
Пример: http://jsfiddle.net/fixit/p3B4s/3/