如何生成BFC?BFC的規則?BFC能夠解決什麼問題?

一、什麼是BFC?佈局

BFC 全稱爲   「塊 格式化 上下文」  (Block Formatting Context) 字體

一、如何生成BFC?spa

(1) float:leftrightcode

(2) 根元素Htmlorm

(3) overflow:hidden,auto,scollblog

(4) display:inline-block;it

(5) position:fixed,absoluteio

二、BFC規則class

 

(1) 垂直方向上的距離由margin決定,屬於同一個BFC的兩個相鄰的標籤的margin會發生重疊容器

 
 <style> .box{ width: 300px; height: 300px; float: left; border: 5px solid red; } .top{ width: 100px; height: 100px; margin-bottom:10px ; border:5px solid gray; } .bottom{ width: 100px; height: 100px; margin-top:40px ; border:5px solid blue; } </style> <body> <div class="box"> <div class="top"></div> <div class="bottom"></div> </div> </body>

top盒子與bottom盒子垂直間距40px(並無把margin-top   margin-bottom疊加起來  而是取了較大的一個值,由於他們發生了重疊)

 

(2) 每一個標籤的左外邊距與包含塊的左外邊界相接觸(從左向右),即便浮動標籤也是如此。

這個理解就比較簡單了,任何一個標籤在你沒有設置margin,padding,position,等改變其位置的屬性是,他默認放在最左邊,後面的一個接一個

 

(3) BFC的區域不會與浮動的標籤區域重疊

a左浮動了b也左浮動了,a與b不會重疊,只會一個接一個的放置

 

(4) 計算BFC高度的時候,浮動子元素也參與計算

說一個很簡單的例子,咱們知道清除浮動的方法有不少,其中一種就是給父元素也設置浮動,父元素就有高度了,其緣由就在這(BFC高度的時候,浮動子元素也參與計算)也就是父元素是一個BFC,在算父元素的高度時,浮動的子元素也參與計算,從而父元素就會被子元素撐開

 

(5) BFC就是頁面上的一個隔離的獨立容器,容器裏面的子元素不會影響外面的標籤,反之亦然

 

 

三、BFC能解決什麼問題?(與上面的規則對應)

 

(1) 外邊距重疊

 

(2) 自適應兩欄或三欄佈局

 

(3) 防止字體環繞

 

(4) 清除浮動

相關文章
相關標籤/搜索