标签:dde 规则 form bfc 如何 isp layout text overflow
Formatting Context:指页面中的一个渲染区域,并且拥有一套渲染规则,他决定了其子元素如何定位,以及与其他元素的相互关系和作用。
BFC:块级格式化上下文,它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。
BFC的生成:
浮动,绝对定位元素,和display属性为inline-boxs、table-cells、table-captions的不是块盒的块容器(除非这个值已经被传播到视口),以及当overflow不为visible的块盒才会为它的内容创建新的BFC。
BFC的特性:
举例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<p>html根节点默认是一个BFC,<div style="overflow: hidden;"></div>生成多个新的BFC</p>
<hr>
<p>div1先生成新的BFC,然后div2在根节点的BFC中排列</p>
<div style="overflow: hidden;">
<div style="float: left; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="width: 200px; height: 200px; background: pink;">div2</div>
</div>
<hr>
<p>div2先在根节点的BFC中排列,然后div1生成新的BFC</p>
<div style="overflow: hidden;">
<div style="width: 200px; height: 200px; background: pink;">div2</div>
<div style="float: left; width: 100px; height: 100px; background: lightgreen;">div1</div>
</div>
<hr>
<p>div1先生成新的BFC,然后div2生成新的BFC</p>
<div style="overflow: hidden;"></div>
<div style="float: left; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="overflow: hidden; width: 200px; height: 200px; background: pink;">div2</div>
</div>
<hr>
<p>不触发BFC,margin重叠</p>
<div style="overflow: hidden;"></div>
<div style="margin: 20px; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="margin: 20px; width: 100px; height: 100px; background: pink;">div2</div>
</div>
<hr>
<p>触发BFC,margin不重叠</p>
<div style="overflow: hidden;"></div>
<div style="margin: 20px; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="overflow: hidden;">
<div style="margin: 20px; width: 100px; height: 100px; background: pink;">div2</div>
</div>
</div>
<hr>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<!-- body默认是static(没有创建BFC)
此时body包裹住content
因为content有margin-top: 200px
所以虽然body的offsetTop为0但实际距离顶部是200 -->
<body>
<!-- nav:fixed(创建BFC) -->
<div style="position: fixed;top: 0;left: 0; width:100%; height:50px; background: rgba(0,0,0,0.5);">nav</div>
<div style="width: 100%;height: 500px; margin-top: 200px;">content</div>
</body>
</html>
IFC:行内格式化上下文。
注意:
GFC(GridLayout Formatting Contexts):网格布局格式化上下文
FFC(Flex Formatting Contexts):自适应格式化上下文
共性:
区别:
使用场景:
CSS-格式化上下文(Formatting Context)
标签:dde 规则 form bfc 如何 isp layout text overflow
原文地址:https://www.cnblogs.com/jffun-blog/p/9520289.html