这就是我想要实现的目标:
- 即使内容没有垂直填充视口,页脚也应该留在屏幕底部。
- 内容列的边框应始终为 100% 内容高度。由于列的数量和宽度会因页面而异,因此无法使用背景图像到假列边框。
- 当所有内容都可见时不应该有滚动条(示例 1)。
- 解决方案应该是所有的 HTML/CSS,没有 JS。
- 最低浏览器支持应为 IE9+ 和最新桌面版本的 Firefox、Chrome、Safari、Opera;没有怪癖模式。
- 页眉/页脚/内容的宽度始终是固定的(因此页眉和页脚不需要放置在内容区域内)。页眉和页脚的高度也是固定的。
我尝试了Fluid Width Equal Height Columns和这个粘性页脚示例中的技术,但无法同时满足所有要求。任何提示表示赞赏。
编辑:到目前为止,我所做的最远的是模仿在 webkit 浏览器中正常工作但在 IE9 和 Opera 中不能正常工作的表格。看这里的小提琴。
HTML:
<div class="table outer">
<div class="row header">
<div class="cell">header</div>
</div>
<div class="row content">
<div class="cell">
<div class="table inner">
<div class="row">
<div class="cell">content 1</div>
<div class="cell">content 2</div>
<div class="cell">content 3</div>
</div>
</div>
</div>
</div>
<div class="row footer">
<div class="cell">footer</div>
</div>
</div>
CSS:
html, body {
height: 100%;
}
.table {
display: table;
min-height: 100%;
height: 100%;
}
.table.outer {
width: 500px;
margin: 0 auto;
}
.row {
display: table-row;
}
.cell {
display: table-cell;
}
.header, .footer {
height: 25px;
background-color: #999;
}
.content {
background-color: #eee;
}
.table.inner {
width: 100%;
min-height: 100%;
height: 100%;
}
.table.inner .cell {
width: 33%;
border-right: 1px dashed #c00;
}