如何在页眉和页脚之间使DIV高度达到100%

时间:2012-04-19 12:39:30

标签: html css css-position sticky-footer

有没有办法设置布局,使标题为50px,正文为100%,页脚为50px?

我希望身体至少用完整个观察区域。我想让页脚和标题始终在屏幕上

3 个答案:

答案 0 :(得分:15)

我在jsfiddle中创建了一个例子:

UPDATED JsFiddle:http://jsfiddle.net/5V288/1025/

HTML:

<body>
    <div id="header"></div>
    <div id="content"><div>
        Content 
    </div></div>
    <div id="footer"></div>
</body>

CSS:

html { height: 100%; }
body {
    height:100%;
    min-height: 100%;
    background: #000000;
    color: #FFFFFF;
    position:relative;
}
#header {
    height:50px;
    width:100%;
    top:0px;
    left:0px;
    background: #CCCCCC;
    position:fixed;
}
#footer {
    height:50px;
    width:100%;
    bottom:0px;
    left:0px;
    background: #CCCCCC;
    position:fixed;
}
#content {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    height:100%;
    padding: 0 20px;
}
#content > div {
    padding: 70px 0;
}

没有border-box,内容将是高度100%+ 140px填充。使用border-box,内容高度将为100%,填充将位于内部。

答案 1 :(得分:4)

对安德烈亚斯·温特解决方案的解决方案:

http://jsfiddle.net/5V288/7/

*使用它的解决方案,如果内容大于可用的窗口区域,则会出现问题。

答案 2 :(得分:3)

我认为你所寻找的是“多个绝对坐标”。 List Apart有一个解释here但基本上,你只需要指定正文的位置为绝对位置,并设置top: 50pxbottom: 50px

<body>
<style>
#header {
  position: absolute;
  height: 50px;
} 

#body {     
  position: absolute;
  top: 50px;
  bottom: 50px;
  background-color: yellow;
}

#footer {
  position:absolute;
  height: 50px;
   bottom: 0;
}
</style>
<div id="header">Header</div>
<div id="body">Content goes here</div>
<div id="footer">Footer</div>

http://www.spookandpuff.com/examples/absoluteCoordinates.html以更漂亮的方式展示了这项技术。