隨著互聯(lián)網(wǎng)的普及和技術(shù)的不斷發(fā)展,web前端開(kāi)發(fā)工程師在當(dāng)今互聯(lián)網(wǎng)行業(yè)中的重要地位,Web前端開(kāi)發(fā)工程師作為一個(gè)專(zhuān)業(yè)技術(shù)崗位,需要掌握多種技術(shù)來(lái)構(gòu)建現(xiàn)代化的網(wǎng)頁(yè)和應(yīng)用程序,今天八維職業(yè)學(xué)校和大家一起來(lái)看看web前端工程師常見(jiàn)的BFC是什么,希望對(duì)想要學(xué)習(xí)和了解web前端開(kāi)發(fā)工程師這個(gè)行業(yè)的同學(xué)有所幫助。
一、什么是BFC?
BFC(Block formatting context)直譯為"塊級(jí)格式化上下文"。它是一個(gè)獨(dú)立的渲染區(qū)域,只有Block-level box參與, 它規(guī)定了內(nèi)部的Block-level Box如何布局,并且與這個(gè)區(qū)域外部毫不相干。
在解釋什么是BFC之前,我們需要先知道Box、Formatting Context的概念。
Box:css布局的基本單位
Box 是 CSS 布局的對(duì)象和基本單位, 直觀點(diǎn)來(lái)說(shuō),就是一個(gè)頁(yè)面是由很多個(gè) Box 組成的。元素的類(lèi)型和 display 屬性,決定了這個(gè) Box 的類(lèi)型。 不同類(lèi)型的 Box, 會(huì)參與不同的 Formatting Context(一個(gè)決定如何渲染文檔的容器),因此Box內(nèi)的元素會(huì)以不同的方式渲染。讓我們看看有哪些盒子:
block-level box:display 屬性為 block, list-item, table 的元素,會(huì)生成 block-level box。并且參與 block fomatting context;
inline-level box:display 屬性為 inline, inline-block, inline-table 的元素,會(huì)生成 inline-level box。并且參與 inline formatting context;
run-in box: css3 中才有, 這兒先不講了。
Formatting Context
Formatting context 是 W3C CSS2.1 規(guī)范中的一個(gè)概念。它是頁(yè)面中的一塊渲染區(qū)域,并且有一套渲染規(guī)則,它決定了其子元素將如何定位,以及和其他元素的關(guān)系和相互作用。最常見(jiàn)的 Formatting context 有 Block fomatting context (簡(jiǎn)稱(chēng)BFC)和 Inline formatting context (簡(jiǎn)稱(chēng)IFC)。
BFC是一個(gè)獨(dú)立的布局環(huán)境,其中的元素布局是不受外界的影響,并且在一個(gè)BFC中,塊盒與行盒(行盒由一行中所有的內(nèi)聯(lián)元素所組成)都會(huì)垂直的沿著其父元素的邊框排列。
BFC的布局規(guī)則
內(nèi)部的Box會(huì)在垂直方向,一個(gè)接一個(gè)地放置。
Box垂直方向的距離由margin決定。屬于同一個(gè)BFC的兩個(gè)相鄰Box的margin會(huì)發(fā)生重疊。
每個(gè)盒子(塊盒與行盒)的margin box的左邊,與包含塊border box的左邊相接觸(對(duì)于從左往右的格式化,否則相反)。即使存在浮動(dòng)也是如此。
BFC的區(qū)域不會(huì)與float box重疊。
BFC就是頁(yè)面上的一個(gè)隔離的獨(dú)立容器,容器里面的子元素不會(huì)影響到外面的元素。反之也如此。
計(jì)算BFC的高度時(shí),浮動(dòng)元素也參與計(jì)算。
什么是bfc?
Formatting Context:指頁(yè)面中的一個(gè)渲染區(qū)域,并且擁有一套渲染規(guī)則,他決定了 其子標(biāo)簽如何定位,以及與其他標(biāo)簽的相互關(guān)系和作用。
BFC塊級(jí)格式化上下文,它是指一個(gè)獨(dú)立的塊級(jí)渲染區(qū)域,只有Block-level BOX參與, 該區(qū)域擁有一套渲染規(guī)則來(lái)約束塊級(jí)盒子的布局,且與區(qū)域外部無(wú)關(guān)。
怎樣生成BFC
根標(biāo)簽
float的值不為none
overflow 的值不為 visible
display 的值為 inline-block
position 的值為 absolute 或 fixed
BFC的特性
垂直方向上的距離由margin決定,屬于同一個(gè)BFC的兩個(gè)相鄰標(biāo)簽的margin會(huì)發(fā)生重疊。
每個(gè)標(biāo)簽的左外邊距與包含塊的左邊界相接觸(從左向右),即使浮動(dòng)標(biāo)簽也是如此。
BFC 的區(qū)域不會(huì)與 float 的標(biāo)簽區(qū)域重疊。(不包括固定定位方法)
計(jì)算BFC的髙度時(shí),浮動(dòng)子標(biāo)簽也參與計(jì)算。
BFC就是頁(yè)面上的一個(gè)隔離的獨(dú)立容器,容器里面的子標(biāo)簽不會(huì)影響到外面標(biāo)簽, 反之亦然。
BFC解決的問(wèn)題
外邊距塌陷
清浮動(dòng)
兩欄或者三欄自適應(yīng)布局 (只能用overflow:hidden)
自媒體就業(yè)前景分析
在當(dāng)今數(shù)字化時(shí)代,自媒體的蓬勃發(fā)展為眾多求職者帶來(lái)了新的機(jī)遇和挑戰(zhàn)。以下是對(duì)自媒體就業(yè)前景的詳細(xì)分析。