DIV嵌套时外层无法自适应高度三种解决方案。
如何解决DIV嵌套时外层(父层)无法自适应高度?
相信很多朋友在使用CSS+DIV过程中都会遇到这个问题,特别是目前的浏览器版本越来越多,更新的也非常快,对CSS的支持和要求越来越高,如IE8、IE9、FF、chrome等等浏览器,虽然对CSS支持完美,但是也有些错误,导致DIV+CSS的排版出现验证问题。
原本自己写的CSS代码是没有错误的,但是为什么在新版的浏览器中会发现使用DIV嵌套时外层(父层)无法自适应高度的错误,完美所写的代码在IE6上能完美的展示出来,但是在IE8、FF上却出现不适应高度的问题,难道是CSS不兼容浏览器?下面就来说说其解决方法。
假如完美的CSS代码已经通过了W3C的验证,那就说明,我们写的代码完全是没有错误的,那么是说明原因呢?这个原因我也说不清楚,在网上查了好久,我也没有查到原因,但是查到了相关的解决办法,网上的解决办法有3种,但是我觉得不完美,下面列出网上的我查找到的解决方法。
1、在外层的CSS代码中加入display:table
2、第二种解决方法是定义一个CSS类:
- .box:after{
- content:”.”;
- display:block;
- height:0px;
- clear:both;
- visibility:hidden;
- }
然后将父层DIV代码中的<divid=”main”>改为<divid=”main”class=”box”>。
3、在外层(父层)CSS代码中加入overflow:auto;
在我使用了上面3种方法后,我觉得只有第3种方法有效,但是其效果不是很好,但是不会出现异常,不过为了更完美的解决这个问题,我介绍一个很有效的方法给大家试试,这个方法绝对有效,而且也是很简单的。
最终解决方法:根据上面的3个方法,最终我的解决方法是,在外层(父层)CSS代码中加入下面两个属性值(一个都不能少)。
- clear:both;overflow:auto;