Справка по макету CSS - растянуть элемент div внизу страницы - PullRequest
16 голосов
/ 07 сентября 2010

Я пытаюсь создать макет с областью заголовка, которая содержит логотип и некоторые ссылки, а затем область контента, которая должна быть расширена до нижней части страницы. Вот где я застреваю.

Я окружил заголовок и содержимое контейнером 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;
}

Ответы [ 3 ]

4 голосов
/ 07 сентября 2010

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 голосов
/ 07 сентября 2010

Сделать позицию деления контейнера: относительной, а позицию деления содержимого: абсолютной. Затем укажите содержимое div: top:

и bottom: 0 .

Сейчас не в состоянии проверить это, но я думаю, что-то подобное должно работать.

0 голосов
/ 13 июля 2014

ограничения: высота жатки должна быть статической, с абсолютной высотой.

Высота содержимого является динамической.

Код 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...