块格式化上下文BFC

2019-02-20  本文已影响13人  左手气球右手书

块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域。

Formatting Context:指页面中的一个渲染区域,并且拥有一套渲染规则,他决定了其子元素如何定位,以及与其他元素的相互关系和作用。(格式上下文、决定文档如何渲染)
IFC(Inline Formatting Context)

BFC布局规则:

分解如下:

image.png

html:

<div class="tit">利用BFC形成两栏自适应布局</div>
<div class="pt1">
  <div class="left">width:200px;<br> float:left;<br> height:200px; <br>background:#ccf;</div> 
  <div class="right">height:300px; <br>background:#cfc;</div> 
</div> 

<div class="pt1"> 
  <div class="left">width:200px;<br> float:left;<br> height:200px; <br>background:#ccf;</div> 
  <div class="right bfc">height:300px; <br>background:#cfc;<br><span class="hl">overflow:hidden;</span></div> 
</div>

css:

.pt1{height:300px; background:#ffc; width:500px; margin:20px 0;}/*小黄*/
.pt1 .left{width:200px; float:left; height:200px; background:#ccf;}/*小紫*/ 
.pt1 .right{height:300px; background:#cfc;}/*小绿*/
.bfc{overflow:hidden;} 
.hl{color:red; font-weight:bold; font-size:18px;}

多栏布局同理。

<div class="tit">利用BFC清除浮动</div> 
<div class="pt2"> 
  <div class="left">float:left;</div> 
  <div class="right">float:right;</div>
</div> 

<div class="pt2 bfc"><p class="hl">overflow:hidden;</p> 
  <div class="left">float:left;</div> 
  <div class="right">float:right;</div>
</div>

css:

.pt2{width:500px; margin:20px 0; border:10px solid red;} 
.pt2 .left{width:200px; float:left; height:100px; background:#ccf;} 
.pt2 .right{width:300px;float:right; height:100px; background:#cfc;} 
.bfc{overflow:hidden;} 
.hl{color:red; font-weight:bold; font-size:18px;}

同理可用于清除文字环绕。

创建BFC:

上一篇下一篇

猜你喜欢

热点阅读