CSS Layout Help - 将div拉伸到页面底部

时间:2010-09-07 08:44:13

标签: css html

我正在尝试创建一个带有“标题”区域的布局,其中包含徽标和一些链接,然后是一个需要扩展到页面底部的内容区域。这就是我陷入困境的地方。

我用一个高度为100%的容器div包围了标题和内容,这很好用。但我不能让内容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 个答案:

答案 0 :(得分:4)

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;
}

答案 1 :(得分:2)

使容器div位置:relative和内容div位置:绝对。然后给内容div顶部:&lt; header height&gt;和底部:0

目前无法对此进行测试,但我认为这样的事情应该有效。

答案 2 :(得分:0)

限制: 标题高度应该是静态的,具有绝对高度。

内容高度是动态的。

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/