每個文檔中,每一個元素都被表示爲一個矩形的盒子,它都會具備內容區、padding、border、margin
.png)css
二者的區別:html
使用box-sizing來進行切換
主要分三種重疊, 重疊規則:一大一小取最大,一正一負取和chrome
// css * { margin:0; padding:0; border:0; } #d1 { width:100px; height:100px; margin-top:20px; margin-bottom:20px; background-color:red; } #d2 { width:100px; height:100px; margin-top:10px; background-color:blue; } // html <div id="d1"> </div> <div id="d2"> </div>
// css * { margin:0; padding:0; border:0; } #outer { width:300px; height:300px; background-color:red; margin-top:20px; } #inner { width:50px; height:50px; background-color:blue; margin-top:10px; } // html <div id="outer"> <div id="inner"> </div> </div>
塊格式化上下文(Block Formatting Context,BFC) 是Web頁面的可視化CSS渲染的一部分,是佈局過程當中生成塊級盒子的區域,也是浮動元素與其餘元素的交互限定區域。
每一個塊級盒子都會參與塊格式化上下文(block formatting context)的建立,而每一個塊級元素都會至少生成一個塊級盒子,即主塊級盒子(principal block-level box)
有時候定義了一個塊級元素,設置了寬高雖然佔據一行在chrome下會發現除了元素之外的一個包裹盒子像margin同樣的顏色,這個就是塊級盒;ide
每個塊級元素會生成一個佈局
原理就是觸發BFC從新計算元素尺寸post
// html <div></div> <p> 開始清除浮動清除浮動清除浮動.... </p> // css *{ margin: 0; padding: 0; } div{ width: 100px; height: 100px; background: green; float: left; } p{ background: #f0faa5; overflow: hidden; }
// html <section class="divwrap"> <div class="div1"> float1 </div> <div class="div2"> float2 </div> </section> //css *{ margin: 0; padding: 0; } div{ width: 100px; height: 100px; background: green; float: left; } .div2{ background: red; } .divwrap{ border:3px solid #000; overflow: hidden; }
// html <div class="BFC"> <p> hello world </p> </div> <p> hello world </p> <p> hello world </p> // css *{ margin: 0; padding: 0; } .BFC{ overflow:hidden; } p{ color:black; background:#D499B9; line-height:100px; width:200px; text-align:center; margin:50px; }
最後感謝每一個閱讀的小夥伴與全部寫博客分享的人