对于标准架构div+css的推广中,不少朋友都遇到过高度自适应的问题,网上的方法也有很多,上次总结了“
解决列高度自适应(列高度相同)的五种方法”,由于最近遇到一个类似的问题,所以打算再做一次深入的探讨,以下的讨论都要求结果必须要在IE和Firefox下浏览效果相同。
首先说明第一种情况:
上图中,要求容器一的高度为固定值L1,容器二在容器一内,不过容器二的内容高度L2不固定,要求L2大于L1的时候容器一能自适应二的高度;大家可以尝试只看上图写出符合标准的页面代码试一试。
将第一种情况再稍微负责一点,说明第二种情况:

上图中,其它的条件要求和第一种情况完全一致,只不过这次在容器二中出现带有float的容器三、容器四,大家知道在层中出现float的时候会导致一些高度的问题,臭名昭著的IE6 Peekaboo/Guillotine Bug也和float关,第一种方法在出现float嵌套的时候已经不好用了,这时候怎么办呢,大家再可以尝试只看上图写出符合标准的页面代码试一试。
总结说明:
针对第一种情况,在容器一中css部分加入的关键代码为:
针对第二种情况,在上面的修改基础上还要在容器二中补充css:

程序代码
overflow: hidden;
这个是触发Firefox对高度的自适应的,如果在容器二的高度也固定,并且要求容器二对容器三、容器四的高度要自适应的话,那上面的代码就要补充为:
点击运行看演示1:
[html]
符合标准的自适应高度的深入探讨一 对高度的解析
IE:将根据内容的高度变化,包括未定义高度的图片内容,即使定义了高度,当内容超过高度时,将使用实际高度。
Firefox:没有定义高度时,如果内容中包括了图片内容,MF的高度解析是根据印刷标准,这样就会造成和实际内容高度不符合的情况;当定义了高度,但是内容超过高度时,内容会超出定义的高度,但是区域使用的样式不会变化,造成样式错位。
结论:大家在可以确定内容高度的情况下最好定义高度,如果真的没有办法定义高度,最好不用使用边框样式,否则样式肯定会出现混乱!
心灵博客 [/html]
点击运行看演示2:
[html]
符合标准的自适应高度的深入探讨二 对高度的解析
IE:将根据内容的高度变化,包括未定义高度的图片内容,即使定义了高度,当内容超过高度时,将使用实际高度。
Firefox:没有定义高度时,如果内容中包括了图片内容,MF的高度解析是根据印刷标准,这样就会造成和实际内容高度不符合的情况;当定义了高度,但是内容超过高度时,内容会超出定义的高度,但是区域使用的样式不会变化,造成样式错位。
结论:大家在可以确定内容高度的情况下最好定义高度,如果真的没有办法定义高度,最好不用使用边框样式,否则样式肯定会出现混乱!
心灵博客 [/html]个中的调节测试大家可以不断的修改css参数来感受每一个设置的作用。