你以为的BUG--BFC给你解决!
生活随笔
收集整理的這篇文章主要介紹了
你以为的BUG--BFC给你解决!
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一.BFC 定義
BFC(Block formatting context)直譯為”塊級(jí)格式化上下文”。它是一個(gè)獨(dú)立的渲染區(qū)域,只有Block-level box參與, 它規(guī)定了內(nèi)部的Block-level Box如何布局,并且與這個(gè)區(qū)域外部毫不相干。
?
二.哪些元素會(huì)生成BFC?
三、BFC的作用及原理
1.清除內(nèi)部浮動(dòng)
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <style>.div1{width: 100px;height: 100px;background: #fcc; }.div2{width: 50px;height: 50px;margin-top: 20px;background: #007ACC} </style> <body><div class="div1"><div class="div2"></div></div></body> </html> <script>
?
給父元素設(shè)置overflow:hidden
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <style> 8 .div1{width: 100px;height: 100px;background: #fcc;overflow:hidden } 9 .div2{width: 50px;height: 50px;margin-top: 20px;background: #007ACC} 10 </style> 11 <body> 12 <div class="div1"><div class="div2"></div></div> 13 <div class="div3"></div> 14 </body> 15 </html> 16 <script>
?
2.自適應(yīng)兩欄布局
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <style>.div1{width: 100px;height: 100px;background: #fcc;float: left }.div2{width: 500px;height: 500px;margin-top: 20px;background: #007ACC} </style> <body><div class="div1"></div><div class="div2"></div> </body> </html> <script>
給div2加overflow:hidden;
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <style>.div1{width: 100px;height: 100px;background: #fcc;float: left }.div2{width: 500px;height: 500px;margin-top: 20px;background: #007ACC;overflow: hidden} </style> <body><div class="div1"></div><div class="div2"></div> </body> </html> <script>
3.防止垂直margin重疊
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <style>.div1{width: 100px;height: 100px;background: #fcc;margin-bottom: 10px; }.div2{width: 50px;height: 50px;margin-top: 20px;background: #007ACC}.div3{margin-top: 10px;background: #fcc;width: 100px;height: 100px;position: absolute} </style> <body><div class="div1"><div class="div2"></div></div><div class="div3"></div> </body> </html> <script>
?
?
?
?
?
4.我們可以在p外面包裹一層容器,并觸發(fā)該容器生成一個(gè)BFC。那么兩個(gè)P便不屬于同一個(gè)BFC,就不會(huì)發(fā)生margin重疊了。
?
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 8 <style> 9 *{margin: 0;padding: 0px;} 10 .div1{overflow: hidden } 11 p{margin: 50px;background: #fcc;width: 100px;height: 100px;} 12 </style> 13 <body> 14 <div class="div1"><p></p></div> 15 <p></p> 16 </body> 17 </html> 18 <script>
?
四.BFC布局規(guī)則:
?
?
?
?
未完待續(xù)..........2018-08-09?11:02:01
?
轉(zhuǎn)載于:https://www.cnblogs.com/moonzwt/p/9447654.html
總結(jié)
以上是生活随笔為你收集整理的你以为的BUG--BFC给你解决!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css之object-fit
- 下一篇: JavaScript中的面向对象