午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

談談BFC

2018-5-14    周周

一、什么是BFC
       BFC(block formatting context)簡單來說,BFC 就是一種屬性,這種屬性會影響著元素的定位以及與其兄弟元素之間的相互作用。
    中文常譯為塊級格式化上下文。是 W3C CSS 2.1 規范中的一個概念, 從樣式上看,具有 BFC 的元素與普通的容器沒有什么區別,但是從功能上,具有 BFC 的元素可以看作是隔離了的獨立容器,容器里面的元素不會在布局上影響到外面的元素,并且 BFC 具有普通容器沒有的一些特性,它決定了元素如何對其內容進行定位,以及與其他元素的關系和相互作用。

如何觸發 BFC

      上面介紹了 BFC 的定義,那么如何觸發 BFC 呢?
    滿足下面任一條件的元素,會觸發為 BFC :
    1、浮動元素,float 除 none 以外的值
    2、絕對定位元素,position(absolute,fixed)
    3、display 為以下其中之一的值 inline-blocks,table-cells,table-captions
    4、overflow 除了 visible 以外的值(hidden,auto,scroll)

BFC布局與普通文檔流布局區別      
    普通文檔流布局規則
    1.浮動的元素是不會被父級計算高度
    2.非浮動元素會覆蓋浮動元素的位置
    3.margin會傳遞給父級
    4.兩個相鄰元素上下margin會重疊

    BFC布局規則
    1.浮動的元素會被父級計算高度(父級觸發了BFC)
    2.非浮動元素不會覆蓋浮動元素位置(非浮動元素觸發了BFC)
    3.margin不會傳遞給父級(父級觸發了BFC)

    4.兩個相鄰元素上下margin會重疊(給其中一個元素增加一個父級,然后讓他的父級觸發BFC)

   下面來說一下BFC的實際使用場景
   場景1:解決子盒子都浮動時 父盒子高度不參與計算問題
    <style>
      .far {
         border: 10px solid pink;
         width: 300px;
     }
      .child {
         border: 10px solid yellowgreen;
         width:100px;
         height: 100px;
         float: left;
    }
     .far{
         overflow: hidden;
    }
    </style>
    <body>
        <div class="far">
             <div class="child"></div>
             <div class="child"></div>
        </div>
    </body>

    根據overflow 除了 visible 以外的值(hidden,auto,scroll)就會觸發BFC的原則 計算BFC高度時 ,floatbox也參與其中。


    場景2:box垂直方向的距離 會由margin來決定 相鄰兩個盒子之間margin會重疊 ,這就是margin上下間值合并的原因

    <style>
    p {
        color: pink;
        background: #fcc;
        width: 200px;
        height:100px;
        text-align:center;
        margin: 100px;
    }
    </style>
    <body>
       <p></p>
       <p></p>
    </body>

    要解決這個問題我們可以在p外面包裹一層容器,并觸發該容器生成一個BFC。那么兩個P便不屬于同一個BFC,就不會發生margin重疊了,解決代碼如下。
    <style>
       .box {
          overflow: hidden;
       }
       p {
          background: green;
          width: 200px;
          height: 200px;
          margin: 100px;
      }
    </style>
    <body>
       <p></p>
       <div class="box">
           <p></p>
       </div>

    </body>

    場景3:實現左側固定右側自適應等類似布局
    <style>
        .out{
            border: 1px solid red;
            height: 200px;
        }
        .left{
            width: 200px;
            height: 150px;
            background-color: green;
            float: left;
        }
        .right{
            background-color: pink;
            height: 250px;
            overflow: hidden;
        }
      </style>
      <body>
     <div class="out">
        <div class="left"></div>
        <div class="right"></div>
      </div>

日歷

鏈接

個人資料

藍藍設計的小編 http://www.gerard.com.cn

存檔

主站蜘蛛池模板: 冰山高冷受被c到哭np双性 | 伊人久久大线蕉香港三级 | 皮皮色狼网 | 99精品在线播放 | 免费毛片在线播放 | 久久不射电影网 | 99精品免费久久久久久久久蜜桃 | 无人影院在线播放 | 色偷偷超碰97人人澡人人 | 亚洲黄色在线 | 亚洲日韩国产成网站在线 | 4虎最新网址 | 日韩AV片无码一区二区三区不卡 | 免费人妻无码AV不卡在线 | 亚洲色综合狠狠综合区 | 香蕉97超级碰碰碰碰碰久 | 97色伦图区97色伦综合图区 | 久久这里只精品国产99re66 | 人妻 中文无码 中出 | 妖精视频一区二区免费 | 99热久久爱五月天婷婷 | 做暧暧免费30秒体验 | 日韩欧美一区二区三区免费观看 | 国产成人自拍视频在线观看 | 99精品免费久久久久久久久日本 | 爱情岛论坛免费在线观看 | 琪琪电影午夜理论片YY6080 | 又大又硬又爽免费视频 | 亚洲性无码AV久久成人 | 九色PORNY真实丨国产大胸 | 奶好大下面流了好多水水 | 永久免费精品精品永久-夜色 | 中文字幕蜜臀AV熟女人妻 | 拔擦拔擦8X永久华人免费播放器 | 天美传媒在线完整免费观看网站 | 欧美人成人亚洲专区中文字幕 | 亚洲精品乱码久久久久久中文字幕 | 亚洲三区视频 | 亚洲风情无码免费视频 | 精品国产乱码久久久久久免费 | 国产成人a v在线影院 |