需要div来填补两个div之间的差距

时间:2013-04-18 10:42:28

标签: html css

给出以下HTML:

<div id="wrapper">
<div id="header">*header*</div>
<div id="content">*content*</div>
<div id="footer">*footer*</div>
</div>

以下CSS:

#wrapper {
min-height:100%;
position:relative;
}
* {margin:0;padding:0;height:100%;}
#header {
    width:100%;
    height:auto;
    margin-top: 0;
}
#content {
    width:100%;
    height: auto;
    margin:0;
    margin-top:0;
    margin-bottom:0;
}
#footer {
    width:100%;
    height:auto;
    position:absolute;
    margin-top: 0;
    margin-bottom: 0;
    bottom:0;
    left:0;
}

内容与页脚的div之间存在差距。如何设置内容的高度必须是页眉和页脚之间的所有空格?

页脚必须将“绝对”位置放在页面底部。

2 个答案:

答案 0 :(得分:3)

尝试使用display:tabletable-row选项

display:table#wrapper

display:table-row#header#content(此处宽度和高度应为100%)和#footer

#wrapper {
    min-height:100%;
    position:relative; 
    display: table; 
    width:100%
}

#header {
    width:100%;
    height:auto;
    margin-top: 0;
    background:#dbfcd6; display: table-row;
}
#content {
    width:100%; display:table-row; background:green; height:100%
}
#footer {
    width:100%;
    height:auto;
    position:absolute;
    margin-top: 0;
    margin-bottom: 0;
    bottom:0;
    left:0; background:yellow;
    display: table-row;
}

<强> DEMO

答案 1 :(得分:0)

这是因为你的页脚有一个底部:0并且它的位置是绝对的。这会使它卡在底部。

你应该像这样给你的内容一个最小高度和最大高度:

#content {
background-color:red;
width:100%;
min-height:450px;
max-height: auto;
margin:0;
margin-top:0;
margin-bottom:0;

}

然后将页脚的位置更改为relative

看看这个小提琴:)Check me!