等高柱
在某种程度上,棘手的部分不是固定的页眉和页脚,也不是 100% 的高度。棘手的部分是等高的列。通常,最好伪造等高的列(例如,将灰绿色背景图像添加到父容器)。与真正的等高列相比,这样做通常可以使代码更简单、更灵活、更稳定。如果这个网站的布局被证明过于笨拙,请尝试假装等高的列(如本演示中所示),看看这是否有助于布局变得更易于管理。
话虽如此,真正等高列的基本选项如下:
这是一个使用 CSS 表的具有真正等高列的JSFiddle 演示。左栏的内容很高,右栏的内容很短。该演示在 IE10、Firefox、Chrome、Safari 和 Opera 中测试良好;然而,这可能只适用于相对简单的布局。
这是一个使用 HTML 表格的类似演示,以防需要对 IE8 的支持。
伪造等高列
这是另一个通过添加2 色背景图像来伪造等高列的演示。此演示在 IE10、Firefox、Chrome、Safari 和 Opera 中也测试良好;但是,与以前的不同,它更有可能支持复杂的页面布局。
HTML
<div id="header">...</div>
<div id="content" class="clearfix">
<div class="column1">...</div>
<div class="column2">...</div>
</div>
<div id="footer">...</div>
CSS
html, body {
height: 100%;
...
}
#header {
position: fixed;
top: 0;
height: 120px;
...
}
#footer {
position: fixed;
bottom: 0;
height: 60px;
...
}
#content {
min-height: 100%;
padding: 120px 0 60px 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: url(some-two-color-background.png) repeat-y 53.6% top;
...
}
#content .column1 {
float: left;
width: 250px;
}
#content .column2 {
float: left;
width: 350px;
}
注意:背景图像的明显列宽是通过设置background-position
属性来控制的。这允许使用相同的通用背景图像伪造任何显式宽度(px 或 %)的两列。或者,可以使用具有精确列大小的自定义背景图像来简化 CSS。