Справка по макету 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/