中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS如何使用BFC規則布局引發外層div包裹內層div的處理

發布時間:2021-09-15 11:41:48 來源:億速云 閱讀:111 作者:柒染 欄目:web開發

這篇文章給大家介紹CSS如何使用BFC規則布局引發外層div包裹內層div的處理,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

BFC的概念
BFC全稱Block Formatting Context ,直譯“塊級格式化上下文”,也有譯作“塊級格式化范圍”。它是 W3C CSS 2.1 規范中的一個概念,它決定了元素如何對其內容進行定位,以及與其他元素的關系和相互作用。通俗的講,就是一個div內部,我們用float和margin布局元素。

BFC布局規則:
1.內部的Box會在垂直方向,一個接一個地放置。
2.Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發生重疊
3.每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。
4.BFC的區域不會與float box重疊。
5.BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素。反之也如此。
6.計算BFC的高度時,浮動元素也參與計算

創建一個BFC
一個BFC可以被顯式的觸發。如果想要創建一個新的BFC,只需要給它添加上面提到的任何一個CSS樣式就可以了。
例如,請看下面的 HTML :

XML/HTML Code復制內容到剪貼板

  1. <div class="container">  
        Some Content here   
    </div>

一個新的BFC可以通過給容器添加任何一個觸發BFC的CSS樣式,如 overflow: scroll , overflow: hidden , display: flex , float: left ,或者 display: table 來創建。
display:table 可能會產生一些問題
overflow:scroll 可能會顯示不必要的滾動條
float:left 將會把元素置于容器的左邊,其他元素環繞著它
overflow:hidden 將會剪切掉溢出的元素
所以每當想要創建一個新的BFC的時候,我們會基于我們的需求選擇最好的樣式條件。為了一致性,我在這篇文章所給出的例子中全部使用了 overflow: hidden

CSS Code復制內容到剪貼板

  1. container {   
        overflow: hidden;   
    }

你可以自由使用除了 overflow: hidden 之外的樣式聲明。

BFC布局引發的問題
我們看看BFC布局引發的問題吧。
例如如下代碼

CSS Code復制內容到剪貼板

  1. <!doctype html>   
    <html lang="en">   
    <head>   
        <meta charset="UTF-8">   
        <title>Clear float</title>   
        <style type="text/css">   
            .container{   
                margin: 30px auto;   
                width:600px;   
                height: 300px;   
            }   
            .p{   
                border:solid 3px #a33;   
            }   
            .c{   
                width: 100px;   
                height: 100px;   
                background-color: #060;   
                margin: 10px;   
                float: left;   
            }   
        </style>   
    </head>   
    <body>   
        <div class="container">   
            <div class="p">   
                <div class="c"></div>   
                <div class="c"></div>   
                <div class="c"></div>   
            </div>   
        </div>   
    </body>   
    </html>

我們希望看到的效果是:
CSS如何使用BFC規則布局引發外層div包裹內層div的處理

結果出現如下:
CSS如何使用BFC規則布局引發外層div包裹內層div的處理

解決方案:
解決方法一般有2種。
1.利用 clear屬性,清除浮動
2.使父容器形成BFC
清除浮動的方法,我們可以用如下辦法:
對父元素加一個class

XML/HTML Code復制內容到剪貼板

  1. <div class="p floatfix">  
        <div class="c">1</div>  
        <div class="c">2</div>  
        <div class="c">3</div>  
    </div>

添加如下CSS

CSS Code復制內容到剪貼板

.floatfix{   
    *zoom:1;   
}   
.floatfix:after{   
    content:"";   
    display:table;   
    clear:both;   
}

這種方法是比較好的解決方案!

關于CSS如何使用BFC規則布局引發外層div包裹內層div的處理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江都市| 中山市| 岫岩| 承德县| 临江市| 宝坻区| 黑水县| 郸城县| 玉屏| 赫章县| 上栗县| 共和县| 栾川县| 拉萨市| 沙田区| 平度市| 增城市| 图木舒克市| 嘉兴市| 凤台县| 古丈县| 武定县| 溆浦县| 年辖:市辖区| 南木林县| 高碑店市| 浮山县| 延寿县| 高安市| 双城市| 新巴尔虎右旗| 军事| 万州区| 正蓝旗| 临夏市| 清新县| 清河县| 成都市| 格尔木市| 湖南省| 普兰店市|