css两列等高布局

布局方案

等高布局有几种不同的方法,但目前为止我认为浏览器兼容最好最简便的应该是padding补偿法。首先把列的padding-bottom设为一个足够大的值,再把列的margin-bottom设一个与前面的padding-bottom的正值相抵消的负值,父容器设置超出隐藏,这样子父容器的高度就还是它里面的列没有设定padding-bottom时的高度,当它里面的任一列高度增加了,则父容器的高度被撑到它里面最高那列的高度,其他比这列矮的列则会用它们的padding-bottom来补偿这部分高度差。因为背景是可以用在padding占用的空间里的,而且边框也是跟随padding变化的,所以就成功的完成了一个障眼法。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8" />
 5 <title>高度自适应布局</title>
 6 <style>
 7 body{ padding:0; margin:0; color:#f00;}
 8 .container{ margin:0 auto; width:600px; border:1px solid #00C;
 9     overflow:hidden; /*这个超出隐藏的声明在IE6里不写也是可以的*/
10 }
11 .left{ float:left; width:150px; background:#B0B0B0;
12     padding-bottom:2000px;
13     margin-bottom:-2000px;
14 }
15 .right{ float:left; width:450px; background:#6CC;
16    padding-bottom:2000px;
17    margin-bottom:-2000px;
18 }
19 </style>
20 </head>
21 <body>
22 <div class="container">
23     <div class="left">我是left</div>
24     <div class="right">我是right<br><br><br>现在我的高度比left高,但left用它的padding-bottom补偿了这部分高度</div>
25     <div ></div>
26 </div>
27 </body>
28 </html>