<!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
}