BFC 英文名为 Block Formatting Context (块级格式化上下文)
具体可查看
MDN
margin
塌陷问题高度塌陷
该元素不被其他元素浮动遮挡
1.根元素默认开启BFC
2.浮动元素
3.绝对、固定定位
4.overflow的值为 hidden、scroll、auto
5.行内块元素
6.display:table;或者display:flow-root
此处我们就margin塌陷问题
,展示开启BFC的效果
1.首先制造margin塌陷现象
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
*{
margin: 0;
padding: 0;
}
.outer{
width: 400px;
background-color: gray;
}
.inner{
width: 100px;
height: 100px;
margin: 50px;
}
.inner1{
background-color: orange;
}
.inner2{
background-color: green;
}
.inner3{
background-color: skyblue;
}
style>
head>
<body>
<div class="outer">
<div class="inner inner1">1div>
<div class="inner inner2">2div>
<div class="inner inner3">3div>
div>
body>
html>
效果
2.父元素开启BFC,解决子元素margin塌陷问题
在原有代码做出的修改
.outer{
width: 400px;
background-color: gray;
/* 开启BFC */
/* float: left; */
/* position: absolute; */
/* position: fixed; */
/* overflow: hidden; */
/* overflow: scroll; */
/* overflow: auto; */
/* display: inline-block; */
/* display: table; */
display: flow-root;
}
效果
其他两种情况,大家可以自行尝试