三列等高,实现效果如下: 问题分析: 【1】对结构的理解。Main列先显示出来,在结构书写上就应该是Main的XHTML代码被写在前面。这样默认就会首先加载它。 【2】对CSS样式属性的理解和灵活应用。不使用背景图片,且仅用纯CSS实现三列等高。参考翻译《使用负边距创建自适应宽度的流体布局》,说白了是自适应宽度,咱们这里要做的是自适应高度… 实现代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>test-3</title> <mce:style type="text/css"><!-- body {/*定义body宽并横向居中*/ width:960px; margin:0 auto; } #header { background: #A9A9A9; height: 70px; } #container { margin-top: 10px; overflow: hidden;/*隐藏子栏目的padding-bottom*/ zoom:1;/*IE6下激发haslayout*/ } #container #mainContain {/*框起左边栏及主体部分,使得可通过样式实现与右边栏的分离*/ float: left; width: 680px; } #container #mainContain #leftBar {/*定义左边栏*/ float: left; width: 270px; background: #424242; } #container #mainContain #mainBox {/*定义主体内容*/ float: right; width: 400px; background: #A9A9A9; } #container #rightBar {/*定义右边栏*/ float: right; width: 270px; background: #797979; } #container .column {/*此为关键点*/ padding-bottom: 3000px;/*设置一个足够的下边填充,使得高度相对较矮的box可在视觉上延伸其高度*/ margin-bottom: -3000px;/*设置一个与其设置的下边填充数额相等的反向下边边距,使得其在布局上维持相对合理状态*/ } --></mce:style><style type="text/css" mce_bogus="1">body {/*定义body宽并横向居中*/ width:960px; margin:0 auto; } #header { background: #A9A9A9; height: 70px; } #container { margin-top: 10px; overflow: hidden;/*隐藏子栏目的padding-bottom*/ zoom:1;/*IE6下激发haslayout*/ } #container #mainContain {/*框起左边栏及主体部分,使得可通过样式实现与右边栏的分离*/ float: left; width: 680px; } #container #mainContain #leftBar {/*定义左边栏*/ float: left; width: 270px; background: #424242; } #container #mainContain #mainBox {/*定义主体内容*/ float: right; width: 400px; background: #A9A9A9; } #container #rightBar {/*定义右边栏*/ float: right; width: 270px; background: #797979; } #container .column {/*此为关键点*/ padding-bottom: 3000px;/*设置一个足够的下边填充,使得高度相对较矮的box可在视觉上延伸其高度*/ margin-bottom: -3000px;/*设置一个与其设置的下边填充数额相等的反向下边边距,使得其在布局上维持相对合理状态*/ }</style> </head> <body> <div id="header"></div> <div id="container"> <div id="mainContain"> <div id="mainBox" class="column"><!--把主体的XHTML结构写在前面,会使得这部分在浏览器中首先被加载--> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> <p>d</p> </div> <div id="leftBar" class="column"></div><!--左侧边栏--> </div> <div id="rightBar" class="column"></div><!--右侧边栏--> </div> </body> </html>