我认为这将相当简单,但我一直无法找到解决方案。我想要一个包含 2 个 div 的布局来填充浏览器窗口。它们将是 100% 的宽度,并且一个在另一个之上。底部 div 必须具有固定的高度,顶部 div 将填充其余空间。我希望解决方案:
- 仅使用 CSS(无 Javascript)
- 与 IE7+ 兼容(例如无 CSS 计算)
- div之间没有重叠
- 如果顶部 div 的内容不适合布局,则垂直滚动
我尝试了以下方法,但 margin-bottom 似乎没有效果,因此两个 div 重叠(如半透明背景所示):
<!DOCTYPE html>
<html>
<head>
<style>
* {
margin: 0;
padding: 0;
}
body, html {
height: 100%;
}
#content {
height: 100%;
width: 100%;
overflow: auto;
background: rgba(255,0,0,0.5);
margin-bottom: 40px;
}
#footer {
width: 100%;
height: 40px;
position:absolute;
bottom: 0;
background: rgba(255,0,0,0.5);
}
</style>
</head>
<body>
<div id="content">
<p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>last line of content</p>
</div>
<div id="footer"></div>
</body>
</html>
我已经看到了几种粘性页脚的解决方案,但它们似乎都有 div 重叠。这是否像看起来那么难,还是我错过了什么?任何见解将不胜感激!