這篇文章給大家介紹CSS如何使用BFC規(guī)則布局引發(fā)外層div包裹內(nèi)層div的處理,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
聊城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
BFC的概念
BFC全稱Block Formatting Context ,直譯“塊級(jí)格式化上下文”,也有譯作“塊級(jí)格式化范圍”。它是 W3C CSS 2.1 規(guī)范中的一個(gè)概念,它決定了元素如何對(duì)其內(nèi)容進(jìn)行定位,以及與其他元素的關(guān)系和相互作用。通俗的講,就是一個(gè)div內(nèi)部,我們用float和margin布局元素。
BFC布局規(guī)則:
1.內(nèi)部的Box會(huì)在垂直方向,一個(gè)接一個(gè)地放置。
2.Box垂直方向的距離由margin決定。屬于同一個(gè)BFC的兩個(gè)相鄰Box的margin會(huì)發(fā)生重疊
3.每個(gè)元素的margin box的左邊, 與包含塊border box的左邊相接觸(對(duì)于從左往右的格式化,否則相反)。即使存在浮動(dòng)也是如此。
4.BFC的區(qū)域不會(huì)與float box重疊。
5.BFC就是頁(yè)面上的一個(gè)隔離的獨(dú)立容器,容器里面的子元素不會(huì)影響到外面的元素。反之也如此。
6.計(jì)算BFC的高度時(shí),浮動(dòng)元素也參與計(jì)算
創(chuàng)建一個(gè)BFC
一個(gè)BFC可以被顯式的觸發(fā)。如果想要?jiǎng)?chuàng)建一個(gè)新的BFC,只需要給它添加上面提到的任何一個(gè)CSS樣式就可以了。
例如,請(qǐng)看下面的 HTML :
XML/HTML Code復(fù)制內(nèi)容到剪貼板
<div class="container"> Some Content here </div>
一個(gè)新的BFC可以通過(guò)給容器添加任何一個(gè)觸發(fā)BFC的CSS樣式,如 overflow: scroll , overflow: hidden , display: flex , float: left ,或者 display: table 來(lái)創(chuàng)建。
display:table 可能會(huì)產(chǎn)生一些問(wèn)題
overflow:scroll 可能會(huì)顯示不必要的滾動(dòng)條
float:left 將會(huì)把元素置于容器的左邊,其他元素環(huán)繞著它
overflow:hidden 將會(huì)剪切掉溢出的元素
所以每當(dāng)想要?jiǎng)?chuàng)建一個(gè)新的BFC的時(shí)候,我們會(huì)基于我們的需求選擇最好的樣式條件。為了一致性,我在這篇文章所給出的例子中全部使用了 overflow: hidden
CSS Code復(fù)制內(nèi)容到剪貼板
container { overflow: hidden; }
你可以自由使用除了 overflow: hidden 之外的樣式聲明。
BFC布局引發(fā)的問(wèn)題
我們看看BFC布局引發(fā)的問(wèn)題吧。
例如如下代碼
CSS Code復(fù)制內(nèi)容到剪貼板
<!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>
我們希望看到的效果是:
結(jié)果出現(xiàn)如下:
解決方案:
解決方法一般有2種。
1.利用 clear屬性,清除浮動(dòng)
2.使父容器形成BFC
清除浮動(dòng)的方法,我們可以用如下辦法:
對(duì)父元素加一個(gè)class
XML/HTML Code復(fù)制內(nèi)容到剪貼板
<div class="p floatfix"> <div class="c">1</div> <div class="c">2</div> <div class="c">3</div> </div>
添加如下CSS
CSS Code復(fù)制內(nèi)容到剪貼板
.floatfix{ *zoom:1; } .floatfix:after{ content:""; display:table; clear:both; }
這種方法是比較好的解決方案!
關(guān)于CSS如何使用BFC規(guī)則布局引發(fā)外層div包裹內(nèi)層div的處理就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁(yè)名稱:CSS如何使用BFC規(guī)則布局引發(fā)外層div包裹內(nèi)層div的處理
URL分享:http://sd-ha.com/article46/gcjgeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、小程序開發(fā)、ChatGPT、營(yíng)銷型網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)