一、背景
如果父元素没有设置高度,并且子元素全部浮动的话,则会发生父元素的高度塌陷。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>IMBFC</title>
<style type="text/css">
.box1{
height: 200px;
width: 200px;
background-color: blue;
float: left;
}
.father{
border: 5px solid green;
}
</style>
</head>
<body>
<div class="father">
<div class="box1"></div>
</div>
</body>
</html>
二、如何解决
1、为父元素添加overflow:hidden
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>IMBFC</title>
<style type="text/css">
.box1{
height: 200px;
width: 200px;
background-color: blue;
float: left;
}
.father{
border: 5px solid green;
overflow: hidden;
}
</style>
</head>
<body>
<div class="father">
<div class="box1"></div>
</div>
</body>
</html>
2、添加前后双伪元素清除浮动
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>IMBFC</title>
<style type="text/css">
.box1{
height: 200px;
width: 200px;
background-color: blue;
float: left;
}
.father{
border: 5px solid green;
}
.clearfix::after,.clearfix::before{
display: block;
content: '';
clear: both;
}
</style>
</head>
<body>
<div class="father clearfix">
<div class="box1"></div>
</div>
</body>
</html>
结果: