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 style="clear:both"></div> 26 </div> 27 </body> 28 </html>