为什么要清除浮动?浮动的特性是使元素拖标,不能撑开父盒子,会对页面布局产生影响,我们所说的清除浮动,并非真的把float去掉,而是清除浮动的元素给页面带来的影响,当父元素有了高度,后面的布局就不会出错。
1、overflow: hidden
此方法固然可以清除浮动,但是有一个缺陷,就是oveflow: hidden原意是溢出隐藏,所以,溢出的元素是看不见的。
2、额外标签法
.clear { clear: both; }
在浮动的元素后面加一个标签(可以撑开父元素,父元素有高度) 或者 在父元素后面添一个额外标签(不能撑开父元素),缺点,增加了很多无意义的标签。
3、单伪元素清除法
利用伪元素after
.clearfix:after{
content:"";
height:0;
line-height:0;
display:block;
visibility:hidden;
clear:both;
}
.clearfix{
*zoom:1;// 兼容IE6,7
}
4、双伪元素清除法
方法四:使用双伪元素清除浮动
.clearfix:before,.clearfix:after {
content: "";
display: block;
clear: both;
}
.clearfix {
*zoom: 1;
}