文章目录
块级格式化上下文
全称Block Formatting Context, 简称BFC
它是一块独立的渲染区域,它规定了在该区域中,常规流块盒的布局
不同的BFC区域,它们进行渲染时互不干扰
创建BFC的元素,隔绝了它内部和外部的联系,内部的渲染不会影响到外部具体规则:
- 创建BFC的元素,它的自动高度需要计算浮动元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="css/iconfont.css">
<style>
.container{
background-color: #00f;
/* position: absolute; */
/* float: left; */
/* 副作用最小的方式,如果仅仅只是为了解决高度坍塌,最好还是使用clear */
/* overflow: hidden; */
}
span{
display:block;
width: 200px;
height: 200px;
background-color: #f00;
margin: 10px;
float: left;
}
.clear-container::after{
content: "";
clear: both;
display: block;
}
</style>
</head>
<body>
<div class="container clear-container">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</body>
</html>
- 创建BFC的元素,它的边框盒不会与浮动元素重叠
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.float {
width: 200px;
height: 200px;
margin: 20px;
background-color: #f00;
float: left;
margin-right: 100px;
}
.container {
height: 500px;
background-color: #0ff;
/* BFC */
overflow: hidden;
}
</style>
</head>
<body>
<div class="float"></div>
<div class="container"></div>
</body>
</html>
- 创建BFC的元素,不会和它的子元素进行外边距合并
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
background: #00f;
height: 500px;
margin-top: 30px;
}
.child {
height: 100px;
margin: 50px;
background-color: #f00;
}
</style>
</head>
<body>
<div class="container">
<div class="child"></div>
</div>
</body>
</html>