你以为的BUG--BFC给你解决!
生活随笔
收集整理的這篇文章主要介紹了
你以为的BUG--BFC给你解决!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.BFC 定義
BFC(Block formatting context)直譯為”塊級格式化上下文”。它是一個獨立的渲染區域,只有Block-level box參與, 它規定了內部的Block-level Box如何布局,并且與這個區域外部毫不相干。
?
二.哪些元素會生成BFC?
三、BFC的作用及原理
1.清除內部浮動
<!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>
?
給父元素設置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.自適應兩欄布局
<!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外面包裹一層容器,并觸發該容器生成一個BFC。那么兩個P便不屬于同一個BFC,就不會發生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布局規則:
?
?
?
?
未完待續..........2018-08-09?11:02:01
?
轉載于:https://www.cnblogs.com/moonzwt/p/9447654.html
總結
以上是生活随笔為你收集整理的你以为的BUG--BFC给你解决!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css之object-fit
- 下一篇: JavaScript中的面向对象