一、 box
box是css佈局的基本單位,元素的類型和display屬性決定了box的類型。不一樣的類型的盒子會參與不一樣的formatting context。css
block-level box :display屬性爲block、list-item(做爲列表顯示的元素)、table的元素會生成block-level box。bash
二、formatting context
它是頁面中的一塊渲染區域,而且有一套渲染規則,它決定了其子元素將如何定位,以及和其餘元素的關係和相互做用佈局
一、內部的box會在垂直方向上一個接一個的放置flex
<div class="div1"></div>
<div class="div2"></div>
複製代碼
margin: 20px 0
,給div2設置
margin: 30px 0
,此時div1和div2之間的間距爲30px。
<div class="left"></div>
<div class="main"></div>
複製代碼
此時main元素沒有產生bfc,left元素浮動,效果以下: spa
overflow:hidden
變爲bfc,效果以下:
一、overflow屬性不是visible
二、float屬性不爲none
三、display屬性爲inline-block、table-cell、flex、inline-flex、table-caption
四、position爲absolute、fixed
五、body根元素code