1 Star 0 Fork 3

AlfaLee/大前端

forked from 高翔/大前端 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
BFC.html 2.47 KB
一键复制 编辑 原始数据 按行查看 历史
高翔 提交于 2022-02-28 17:44 . 完善笔记呗
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<title>BFC</title>
</head>
<style type="text/css">
.container {
width: 100px;
height: 100px;
background-color: red;
}
.box1 {
height: 20px;
margin: 20px 0;
background-color: green;
}
.box2 {
height: 20px;
margin: 30px 0;
background-color: green;
}
</style>
<body>
1.BFC的理解:块级格式化上下文
2.BFC 特性(功能):
(1).使用BFC可以取消盒子margin塌陷(overflow: hidden);
(2).阻止元素被浮动元素覆盖(overflow: hidden)。
3.创建块级格式化上下文 BFC 的方式:
--). 浮动元素(元素的 float 不是 none)
--). 绝对定位元素(元素的 position 为 absolute 或 fixed)
--). 行内块元素(元素的 display 为 inline-block)
--). 表格单元格(元素的 display为 table-cell,HTML表格单元格默认为该值)
--). 表格标题(元素的 display 为 table-caption,HTML表格标题默认为该值)
--). 匿名表格单元格元素(元素的 display为 table、table-row、 table-row-group、table-header-group、table-footer-group(分别是HTML
table、row、tbody、thead、tfoot的默认属性)或 inline-table)
--). overflow 值不为 visible 的块元素
--). display 值为 flow-root 的元素
--). contain 值为 layout、content或 paint 的元素
--). 弹性元素(display为 flex 或 inline-flex元素的直接子元素)
--). 网格元素(display为 grid 或 inline-grid 元素的直接子元素)
--). 多列容器(元素的 column-count 或 column-width 不为 auto,包括 column-count 为 1)
--). column-span 为 all 的元素始终会创建一个新的BFC,即使该元素没有包裹在一个多列容器中(标准变更,Chrome bug)
4.BFC的作用:
--). 用来清除浮动。
--). 用来布局
--). 解决margin叠加问题。
<div class="container">
<div class="box1"></div>
<div class="box2"></div>
</div>
-- 此时会发现:
1.box1距离父元素并没有20px的距离,而是父元素向上移动了20px,诡异不?
2.box2距离box1没有50px的距离,只有30px距离,出现了margin折叠问题,诡异吗?
3.解决方案:container形成BFC(overflow: hidden或者float: left或者position: absolute...),box1和box2任选其一形成BFC。
</body>
<script type="text/javascript">
</script>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/alfalee_admin/big-front-end.git
[email protected]:alfalee_admin/big-front-end.git
alfalee_admin
big-front-end
大前端
master

搜索帮助