我确定以前有人问过这个问题,但我真的很想知道为什么它正在做它正在做的事情,而不仅仅是答案(如果有的话)。
目前我得到的是一个非常简单的布局,它由一个主包装 div、一个标题 div、一个内容 div 和一个页脚 div 组成。我遇到的问题是当我在内容 div 中放置一些正方形并将它们的定位设置为绝对位置时 - 以便将它们布置在网格中,以便它们跨越内容 div 的整个宽度。当我将这些 div 设置为绝对时,页脚 div 会跳起来,并且不会出现在位于其父内容 div 中的 div 网格下方。如果我将内容 div 的高度设置为页脚 div 应位于的值,但如果我不设置或将其设置为自动(如我所愿),则页脚 div 有效地位于内容 div 下方。
我已经读过将任何内容设置为绝对会使其脱离文档的正常流程,但是无论如何我可以设置内容 div 以便内容 div 的高度由内容设置(即 div 的网格)和还让页脚 div 始终位于内容 div 下方?
这是一个模拟http://jsfiddle.net/M4jyH/3/
这是我的代码
#wrapper {
width: 400px;
height: auto;
border: 1px solid #000;
margin: 10px auto;
padding: 10px;
}
#header {
width: 100%;
height: 50px;
border: 1px solid #000;
}
#content {
position: relative;
width: 100%;
/*height:92px;*/
border: 1px solid #000;
margin: 10px 0px 0px 0px;
}
.box {
position: absolute;
width: 92px;
height: 92px;
background-color: #999;
}
#footer {
position: relative;
width: 100%;
height:92px;
border: 1px solid #000;
margin: 10px 0px 0px 0px;
}
<div id="wrapper">
<div id="header">header</div>
<div id="content">
<div class="box" style="top:0px; left:0px;"></div>
<div class="box" style="top:0px; left:102px;"></div>
<div class="box" style="top:0px; left:205px;"></div>
<div class="box" style="top:0px; left:308px;"></div>
</div>
<div id="footer">footer</div>
</div>