不加浮动,
加了浮动,出现高度塌陷
解决办法
给父元素添加height
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 10px solid rgb(51, 46, 46);
height: 500px;
}
.red{
width: 200px;
height: 200px;
background-color: rgb(245, 126, 126);
float: left;
}
.green{
width: 300px;
height: 300px;
background-color: green;
}
.bobo{
background-color: rgb(139, 136, 136);
height: 200px;
}
</style>
</head>
<body>
<div class="box">
<div class="red"></div>
<div class="green"></div>
</div>
<div class="bobo"></div>
</body>
</html>
给补位元素添加clear:both
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 10px solid rgb(51, 46, 46);
}
.red{
width: 200px;
height: 200px;
background-color: rgb(245, 126, 126);
float: left;
}
.green{
width: 300px;
height: 300px;
background-color: green;
clear: both;
}
.bobo{
background-color: rgb(139, 136, 136);
height: 200px;
}
</style>
</head>
<body>
<div class="box">
<div class="red"></div>
<div class="green"></div>
</div>
<div class="bobo"></div>
</body>
</html>
只有一个元素,没有补位元素时
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 10px solid rgb(51, 46, 46);
}
.red{
width: 200px;
height: 200px;
background-color: rgb(245, 126, 126);
float: left;
}
.bobo{
background-color: rgb(139, 136, 136);
height: 200px;
}
</style>
</head>
<body>
<div class="box">
<div class="red"></div>
</div>
<div class="bobo"></div>
</body>
</html>
自己添加一个补位元素,加clear:both
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 10px solid rgb(51, 46, 46);
}
.red{
width: 200px;
height: 200px;
background-color: rgb(245, 126, 126);
float: left;
}
.clearfix{
clear: both;
}
.bobo{
background-color: rgb(139, 136, 136);
height: 200px;
}
</style>
</head>
<body>
<div class="box">
<div class="red"></div>
<div class="clearfix"></div>
</div>
<div class="bobo"></div>
</body>
</html>
给父元素加overflow:hidden
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 10px solid rgb(51, 46, 46);
overflow: hidden;
}
.red{
width: 200px;
height: 200px;
background-color: rgb(245, 126, 126);
float: left;
}
.bobo{
background-color: rgb(139, 136, 136);
height: 200px;
}
</style>
</head>
<body>
<div class="box">
<div class="red"></div>
</div>
<div class="bobo"></div>
</body>
</html>
万能清除法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
border: 10px solid rgb(51, 46, 46);
}
.box::after{
/* 给box的最后加个内容 */
content: "你好";
/* 给补位元素添加清除浮动 */
clear: both;
/* 补位元素本身为行内元素,转为块元素 */
display: block;
/* 把content中的文字隐藏掉 */
height: 0;
font-size: 0px;
visibility: hidden;
opacity: 0;
}
.red{
width: 200px;
height: 200px;
background-color: rgb(245, 126, 126);
float: left;
}
.bobo{
background-color: rgb(139, 136, 136);
height: 200px;
}
</style>
</head>
<body>
<div class="box">
<div class="red"></div>
</div>
<div class="bobo"></div>
</body>
</html>