清除浮动

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>清除浮动(闭合浮动)</title>
<style type="text/css">

ul{
margin:0;
padding:0;
list-style:none;
}

.parent{
/*
height:300px;或者给父元素设置高度
overflow:hidden;这也是清除浮动的一种方式 它会重新计算高度
*/
300px;
margin:0 auto;
}
.parent ul li{
background:#ffcc66;
float:left;
}

/*
闭合浮动
*/
/* .clearfix:before, .clearfix:after
{
content:"";
display:table;

}

.clearfix:after{
clear:both;
}

.clearfix{  这个是兼容IE67的 记住就好了

*zoom:1; 

}

*/
.clearfix:after
{
content:"";
clear:both;
display:block;
visibility:none;
height:0;
}


</style>
</head>
<body>
<!--
如果父元素里面有两个或两个以上的子元素就需要清除浮动了
如果不清除浮动的话
当父元素没有设置高度的情况下
由于浮动已经脱离标准流 所以不占位置
父元素 高度坍塌
下面如果有元素的话 就会跑到上面来
位置会乱套的
-->
<div class="parent clearfix ">
<ul class="son">
<li>一条咸鱼</li>
<li>一条咸鱼</li>
<li>一条咸鱼</li>
<li>一条咸鱼</li>
<li>一条咸鱼</li>
<li>一条咸鱼</li>
</ul>
</div>
<div class="test">
我是一只小小鸟,怎么飞也飞不高
</div>
<!--
test是块级元素 应该独占一行才对 但是它跑上来了
这时候就需要清除浮动了
-->
</body>
</html>

总结  四种方法

1.  设置父元素  高度

2.  伪类方式

  2.1  .clearfix:before, .clearfix:after{

  content:"";

  display:table;

}

.clear:after{

  clear:both;

}

.clearfix{

  *zoom:1;

}

2.2 

.clearfix:before{

    content:"";

    clear:both;

    display:block;

    visibility:none;

    height:0;

}

.clearfix{

  *zoom:1;

}

3{

 父元素设置overflow:hidden

}

原文地址:https://www.cnblogs.com/liveoutfun/p/9277996.html