這篇文章給大家分享的是有關(guān)CSS中塊級格式是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
為印江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及印江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計、印江網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
1.BFC 定義
BFC(Block formatting context)直譯為"塊級格式化上下文"。它是一個獨立的渲染區(qū)域,只有Block-level box(塊級元素)參與, 它規(guī)定了內(nèi)部的Block-level Box如何布局,并且與這個區(qū)域外部毫不相干.
通俗地來說:創(chuàng)建了 BFC的元素就是一個獨立的盒子,里面的子元素不會在布局上
影響外面的元素(里面怎么布局都不會影響外部),BFC任然屬于文檔中的普通流
2.BFC的生成:
知道了BFC怎么觸發(fā)BFC
滿足以下條件之一都可以觸發(fā)BFC,變身為BFC
根元素
float屬性不為none
position不為static和relative
overflow不為visible
display為inline-block, table-cell, table-caption, flex, inline-flex
你會發(fā)現(xiàn)BFC無處不在,只是自己用的時候不知道而已
3.BFC布局規(guī)則:
變身為BFC后有什么特性呢,以下:
內(nèi)部的Box會在垂直方向,一個接一個地放置。
Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發(fā)生重疊
每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。
BFC的區(qū)域不會與float box重疊。
BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素。反之也如此。
計算BFC的高度時,浮動元素也參與計算
4.BFC作用:
用起來come boby
1.防止外邊距重疊
bfc導(dǎo)致的屬于同一個bfc中的子元素的margin重疊(Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發(fā)生重疊)
問題:由圖可以看到,String1和String2 之間只有20px的margin,按理來說應(yīng)該是40px,但這是在bfc中導(dǎo)致了他們的margin重疊
代碼:
<style>.container1{ /* 通過overflow:hidden可以創(chuàng)建bfc */ overflow: hidden; background-color: red; width: 300px; } .sub1{ margin: 20px 0px; background-color: #dea; }</style><div class="container1"> <div class="sub1">String1</div> <div class="sub1">String2</div></div>
解決方法:我們可以在div外面包裹一層容器,并觸發(fā)該容器生成一個BFC。那么兩個div便不屬于同一個BFC,就不會發(fā)生margin重疊了。
代碼:
<style> .newbfc{ overflow: hidden; }</style><div class="container1"> <div class="sub1">String1</div> <div class="newbfc"><div class="sub1">String2</div></div></div>
2.清除浮動:
問題:當(dāng)元素的子元素都浮動后,會出現(xiàn)高度坍塌的現(xiàn)象,即父容器的高度不會被撐開
代碼:
<style> .pre2{ width: 200px; border: 2px solid red; } .float1,.float2{ width: 100px; height: 100px; float: left; } .float1{ background-color: #dee; } .float2{ background-color: #dcc; }</style><div class="pre2"> <div class="float1"></div> <div class="float2"></div></div>
解決方法:
bfc的規(guī)則:計算BFC的高度時,浮動元素也參與計算所以只要將父容器設(shè)置為bfc就可以把子元素包含進(jìn)去:
這個容器將包含浮動的子元素,它的高度將擴(kuò)展到可以包含它的子元素,在這個BFC,這些元素將會回到頁面的常規(guī)文檔流。
.pre2{ width: 200px; border: 2px solid red; /* 設(shè)置overflow*/ overflow:hidden; }
3.解決布局:防止文字環(huán)繞
代碼:
<style>.container2{ overflow: hidden; width: 200px; } .box{ float: left; width: 100px; height: 30px; background-color: #daa; }</style><div class="container2"> <div class="box"></div> <p style="background-color: #eea">sdfadsfdff fffffffds fsfffff sfd fsdsdfsdf fffffff</p></div>
這個p元素并沒有移動,但是它卻出現(xiàn)在浮動元素的下方。p元素的line boxes(指的是文本行)進(jìn)行了移位。此處line boxes的水平收縮為浮動元素提供了空間。
bfc的規(guī)則:每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。
解決這個問題只要將p元素添加overflow:hidden使其成為一個新的bfc就可以了
感謝各位的閱讀!關(guān)于“CSS中塊級格式是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
分享題目:CSS中塊級格式是什么
標(biāo)題路徑:http://chinadenli.net/article16/ihosdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、定制開發(fā)、營銷型網(wǎng)站建設(shè)、域名注冊、標(biāo)簽優(yōu)化、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)