日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

你以为的BUG--BFC给你解决!

發(fā)布時(shí)間:2025/6/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你以为的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?

  • 根元素
  • float屬性不為none
  • position為absolute或fixed
  • display為inline-block, table-cell, table-caption, flex, inline-flex
  • overflow不為visible
  • 三、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ī)則:

  • 內(nèi)部的Box會(huì)在垂直方向,一個(gè)接一個(gè)地放置。
  • Box垂直方向的距離由margin決定。屬于同一個(gè)BFC的兩個(gè)相鄰Box的margin會(huì)發(fā)生重疊
  • 每個(gè)元素的margin box的左邊, 與包含塊border box的左邊相接觸(對(duì)于從左往右的格式化,否則相反)。即使存在浮動(dòng)也是如此。
  • BFC的區(qū)域不會(huì)與float box重疊。
  • BFC就是頁面上的一個(gè)隔離的獨(dú)立容器,容器里面的子元素不會(huì)影響到外面的元素。反之也如此。
  • 計(jì)算BFC的高度時(shí),浮動(dòng)元素也參與計(jì)算
  • ?

    ?

    ?

    ?

                                    未完待續(xù)..........2018-08-09?11:02:01

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/moonzwt/p/9447654.html

    總結(jié)

    以上是生活随笔為你收集整理的你以为的BUG--BFC给你解决!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。