一、给父级div 设置高度
缺点:简单,代码少,容易掌握,但只适合高度固定的布局
二、结尾处加空div标签 clear:both
原理:在浮动元素的后面添加一个空div兄弟元素,利用css提高clear:both清除浮动,让父级div自动获取到高度;
缺点:如果页面浮动布局多,就要增加很多空div
三、父级div定义 overflow:hidden
缺点:超出盒子部分会被隐藏,不推荐使用
四、给父级div加伪类 :after 和zoom
.clearfix:after{
content:'',
display:block;
visibility:hidden;
height:0;
line-height:0;
clear:both;
}
.clearfix{
zoom:1
}
缺点:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似zoom(IE专有属性)可解决IE6,IE7浮动问题,推荐使用
建议定义公共类,以减少css代码
五、双伪元素法
.clearfix:before,.clearfix:after{
content:'';
display:block;
clear:both;
}
.clearfix {
zoom:1;
}
全浏览器通用的clearfix方案
引入了zoom以支持IE6/7
同时加入:before以解决现代浏览器上边距折叠的问题