
在最新的css标准中,浮动元素float是不影响盒层结构布局的,最多也就影响到排列问题,这就出现了一个现象就是父容器不会自适应所包含的float的高度,比如A包含B,B的高度是h,按照常规的思路,A的高度至少是大于h的,结果由于B是float元素,所以A的高度最终将忽略h,在IE中这个bug好像叫做:Peekaboo bug。
之前曾经在我的blog提到过,当是只是在IE中解决,使用的css代码是:
[codes=css]height: 100%; /*Fix for IE Peekaboo Bug */[/codes]
或者
[codes=css]height: 1%; /*Fix for IE Peekaboo Bug */[/codes]
不过在firefox下却依然存在问题,之前我自己采用的方法是在增加一个绝对的高度定位来弥补firefox中的现实问题,想到如果不能自适应的话,以后如果层内的内容增多的话我依旧要手动去改动父容器的高度,实在是有点不合理,最后查了些资料,找到一个不错的方法,在最新版的IE6和firefox1.5.0.6下测试通过,其它版本应该也差不多能通过,由于不方便测试,只好等到回头找些旧的系统详细的测试下。上面的代码做如下的修改即可:
[codes=css]overflow: auto; /*Fix for Firefox Peekaboo Bug */
_height: 1%; /*Fix for IE Peekaboo Bug */[/codes]
在另外一个网友的blog上提到过别的方法,原理说的很详细,不过没有提出具体的代码,大家可以点击此处看看。

