BFC 是什么,解决了什么问题 
什么是 BFC 
- 块级格式化上下文,
 - 作用就是盒子里面的布局不会影响到外部
 
BFC 规则 
- BFC 就是一个块级元素,会在垂直方向一个接一个排列
 - 在页面中是一个隔离的独立容器,容器内部的元素不会影响到外部标签
 - 垂直方向的距离由 margin 决定,同一个 BFC 的 2 个相领标签外边距会发生重叠
 - 计算 BFC 高度时,浮动元素也参与计算
 
怎么触发 BFC 
- overflow:不为 visible 和 clip
 - position:absolute 或 fixed
 - float:不为 none
 - display:为 inline-block、table-cell、flex、inline-flex、table-caption 等
 
BFC 的作用 
- 解决子元素浮动造成父元素高度坍塌问题 将父元素触发 BFC
 
js
<!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>
			* {
				margin: 0;
				padding: 0;
			}
			.main {
				padding: 10px;
				border: solid 1px red;
			}
			.box {
				width: 200px;
				height: 200px;
				background-color: aqua;
				float: left;
			}
		</style>
	</head>
	<body>
		<div class="main">
			<div class="box"></div>
		</div>
	</body>
</html>
js
<!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>
			* {
				margin: 0;
				padding: 0;
			}
			.main {
				padding: 10px;
				border: solid 1px red;
				overflow: hidden;
				/* float: left; */
				/* position: absolute; */
				/* display: flex; */
			}
			.box {
				width: 200px;
				height: 200px;
				background-color: aqua;
				float: left;
			}
		</style>
	</head>
	<body>
		<div class="main">
			<div class="box"></div>
		</div>
	</body>
</html>
- 相领子元素使用 margin 时边距重叠问题 可以给 2 个子元素各套一个触发 BFC 的父元素 等等
 
js
<!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>
			* {
				margin: 0;
				padding: 0;
			}
			.box {
				width: 200px;
				height: 200px;
				margin: 20px 0;
				background-color: aqua;
				border: solid 1px red;
			}
		</style>
	</head>
	<body>
		<div class="box"></div>
		<div class="box"></div>
	</body>
</html>
js
<!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>
			* {
				margin: 0;
				padding: 0;
			}
			.main {
				overflow: hidden;
                /* display: flex; */
			}
			.box {
				width: 200px;
				height: 200px;
				margin: 20px 0;
				background-color: aqua;
				border: solid 1px red;
			}
		</style>
	</head>
	<body>
		<div class="main">
			<div class="box"></div>
		</div>
		<div class="main">
			<div class="box"></div>
		</div>
	</body>
</html>
