1、在浮动元素后面添加一个空的标签,并且让这个标签样式为:clear:both;
2、父元素直接设置一个高度,放置子元素高度超过父元素高度,无法正常显示
3、父元素overflow:hidden;超出的部分隐藏,但是有一个缺点,当内部浮动元素过多的时候就会造成多出的浮动元素不会自动换行,从而造成超出内容的元素显示不出来;
4、伪类元素:after清楚浮动,其实和第一个方法原理类似如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>盒子模型</title>
<style type="text/css">
*{
margin: 0;
padding:0;
}
.Content{
background: blue;
width: 400px;
}
.left{
float: left;
width: 100px;
height: 100px;
background: red;
}
.right{
float: right;
width: 100px;
height: 50px;
background: yellow;
}
.father:after{
content:"."; clear: both; height: 0; overflow: hidden; visibility: hidden; display: block
}
.father{
zoom: 1;
}
</style>
</head>
<body>
<div class="Content father">
<div class="left"></div>
<div class="right"></div>
</div>
</body>
</html>
结果:
这样即使父元素没有设置高度,也可以让子元素撑起父元素得高度,完成清楚浮动;