粗大的内捧猛烈进出小视频,日本成人精品视频一区,在线播放亚洲成人av,精品人妻少妇嫩草av专区,亚洲AV永久久久久久久浪潮,性导航app精品视频,九九热精品免费视频,一本一本大道香蕉久在线播放

        談談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.xintaizi.com

        存檔