【发布时间】:2012-03-10 09:06:09
【问题描述】:
我有一个覆盖整个屏幕高度的 div。我想在其中放置三个 div:页眉、内容和页脚,页眉贴在顶部,页脚贴在底部,内容介于两者之间。我找到的解决方案需要我为页脚和/或页眉定义一个高度,然后给中心 div 一个等于该高度的边距,我想保留未定义的高度(它们应该拉伸以适应它们的内容)。有没有办法在不使用 javascript 的情况下做到这一点?
当浏览器调整大小时,页脚和页眉应该保持不变,并且中心应该缩小。
<html>
<head>
<style>
.stretchedToMargin {
display: block;
position:absolute;
height:auto;
bottom:0;
top:0;
left:0;
right:0;
background-color: green;
}
</style>
</head>
<body>
<div class="stretchedToMargin">
<div>
Header (style="top:0") Indefinite height.
expands to fit content without scrolling.
</div>
<div>
Content
Fits between header and footer, using the pixels leftover
scrolling if needed
</div>
<div>Footer (style="bottom:0") Indefinite height.
expands to fit content without scrolling.
</div>
</div>
</body>
</html>
如下使用表格(因为它似乎仅使用 CSS 是不可能的)也不起作用。长文本溢出整个布局,没有出现滚动条...
<div class="stretchedToMargin">
<table style="height:100%;">
<tr>
<td style="height:1px;">Header</td>
</tr>
<tr>
<td><div style="height:100%; overflow:auto;">...Long text...</div></td>
</tr>
<tr>
<td style="height:100px">Footer</td>
</tr>
</table>
</div>
【问题讨论】:
-
您需要支持哪些浏览器?
-
如果我调整浏览器大小会发生什么?他们都缩小了吗?还是保持大小?
-
@bazmegakapa 当然! (IE 6+)
-
仅限 CSS,我认为这是不可能的。你必须至少在其中一些(如页眉和页脚)上设置一个明确的高度
-
@Joseph 如果我为页脚设置 px 高度,我该怎么做?
标签: html css layout css-position