BFC(Block formatting context)直譯爲"塊級格式化上下文"。它是一個獨立的渲染區域,它規定了內部如何佈局,是決定塊盒子的佈局及浮動相互影響範圍的一個區域,而且與這個區域外部絕不相干。html
將父元素設置一個能讓其變爲BFC區域的屬性,不如overflow:auto佈局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #one{ background:green; width: 100px; height: 50px; float: left; } #two{ background: red; width: 200px; height: 50px; float: left; } #box{ border: 2px solid salmon; width: 400px; overflow: auto; } </style> </head> <body> <div id="box"> <div id="one">one</div> <div id="two">two</div> </div> </body> </html>
在CSS中,兩個或多個毗鄰的普通流中的盒子(多是父子元素,也多是兄弟元素)在垂直方向上的外邊距會發生疊加,這種造成的外邊距稱之爲外邊距疊加。這裏講解父子元素,兄弟元素同理。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } p{ padding: 0; margin: 20px 0 20px 0; height: 20px; background-color: burlywood; color: #fff; } div{ overflow: auto;//先後的區別取決於這句話,加上就能讓父級生成BFC區域包含它們 width: 250px; background-color: #ccc; } </style> </head> <body> <div> <p>aaaaaaaaaaaaaa</p> <p>bbbbbbbbbbbbbb</p> </div> </body> </html>
BFC改造後flex