我真的在尝试使用 div,但我似乎无法获得与以下简单表格布局等效的内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Table example</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
html, body {height: 100%}
.content {width: 750px; vertical-align: top}
</style>
</head>
<body style="margin: 0; padding: 0">
<table style="height: 100%; width: 100%; border-collapse: collapse">
<tr style="background-color: #666666">
<td></td>
<td class="content" style="height: 100px"><h1>Header Content</h1></td>
<td></td>
</tr>
<tr style="background-color: #BBBBBB">
<td></td>
<td class="content" style="background-color: #FFFFFF"><h1>Main Content</h1></td>
<td></td>
</tr>
<tr style="background-color: #666666">
<td></td>
<td class="content" style="height: 100px"><h1>Footer Content</h1>
</td>
<td></td>
</tr>
</table>
</body>
</html>
我要保留的重要元素:
任何真实的内容都是固定宽度的。(在这种情况下,750 像素)
页眉和页脚背景扩展为页面宽度的 100%。
主要内容背景不会水平扩展,但会垂直扩展以填充页眉和页脚之间的区域。
即使主要内容不是很高,页脚也始终位于页面底部。
我尝试了多种策略,发现至少有两种不同的方法可以使用 div 将页脚保持在页面底部。不幸的是,如果主要内容在 div 中,似乎没有任何方法可以使其垂直扩展以填充短页面上页眉和页脚之间的空间。
编辑:更改了示例以显示即使不在怪癖模式下它也可以工作。以上为证。
编辑2:
我已经找到了一种在很大程度上使用 javascript 来做到这一点的方法。所以,我想我的问题是:我如何在没有 javascript 的情况下做到这一点。这是我正在使用的(我确定它只适用于 Firefox,但我可以修复它):
<script type="text/javascript">
function changeDiv() {
document.getElementById("content").style.minHeight = document.body.clientHeight - 200 + "px";
}
changeDiv();
window.onresize = changeDiv;
</script>
“内容”将指定我要扩展的主要内容 div。