面試題目自己答

最近面試較多嫉戚,但其實很多內(nèi)容自己也不太會,所以有了自問自答的環(huán)節(jié)。
a.什么是BFC
浮動元素和絕對定位元素,非塊級盒子的塊級容器(例如 inline-blocks, table-cells, 和 table-captions)金吗,以及overflow值不為“visiable”的塊級盒子,都會為他們的內(nèi)容創(chuàng)建新的BFC(塊級格式上下文)趣竣。
一個HTML元素要創(chuàng)建BFC摇庙,則滿足下列的任意一個或多個條件即可:
1、float的值不是none遥缕。
2卫袒、position的值不是static或者relative。
3单匣、display的值是inline-block夕凝、table-cell烤蜕、flex、table-caption或者inline-flex
4迹冤、overflow的值不是visible
BFC是一個獨立的布局環(huán)境,其中的元素布局是不受外界的影響虎忌,并且在一個BFC中泡徙,塊盒與行盒(行盒由一行中所有的內(nèi)聯(lián)元素所組成)都會垂直的沿著其父元素的邊框排列。
b.怎樣創(chuàng)建 BFC
要顯示的創(chuàng)建一個BFC是非常簡單的膜蠢,只要滿足上述4個CSS條件之一就行堪藐。例如:
<div class="container"> 你的內(nèi)容 </div>
在類container中添加類似 overflow: scroll,overflow: hidden挑围,display: flex礁竞,float: left,或 display: table 的規(guī)則來顯示創(chuàng)建BFC杉辙。雖然添加上述的任意一條都能創(chuàng)建BFC模捂,但會有一些副作用:
1、display: table 可能引發(fā)響應(yīng)性問題
2蜘矢、overflow: scroll 可能產(chǎn)生多余的滾動條
3狂男、float: left 將把元素移至左側(cè),并被其他元素環(huán)繞
4品腹、overflow: hidden 將裁切溢出元素
因而無論什么時候需要創(chuàng)建BFC岖食,都要基于自身的需要來考慮。對于本文舞吭,將采用 overflow: hidden 方式:
.container {overflow: hidden;}
c.BFC可以做什么呢泡垃?
1.BFC可能造成外邊距折疊,也可以利用它來避免這種情況羡鸥。BFC產(chǎn)生外邊距折疊要滿足一個條件:兩個相鄰元素要處于同一個BFC中蔑穴。所以,若兩個相鄰元素在不同的BFC中兄春,就能避免外邊距折疊澎剥。
html:
<div class="container"> <p>Sibling 1</p> <p>Sibling 2</p> <div class="newBFC"> <p>Sibling 3</p> </div> </div>
css:
.container { background-color: red; overflow: hidden; /* creates a block formatting context */ } p { margin: 10px 0; background-color: lightgreen; } .newBFC { overflow: hidden; /* creates new block formatting context */ }

margin.png

2.BFC包含浮動
浮動元素是會脫離文檔流的(絕對定位元素會脫離文檔流)。如果一個沒有高度或者height是auto的容器的子元素是浮動元素赶舆,則該容器的高度是不會被撐開的哑姚。我們通常會利用偽元素(:after或者:before)來解決這個問題。BFC能包含浮動芜茵,也能解決容器高度不會被撐開的問題叙量。
float.png

3.使用BFC避免文字環(huán)繞
float-around.png

<div class="container"> <div class="floated"> Floated div </div> <p> Quae hic ut ab perferendis sit quod architecto, dolor debitis quam rem provident aspernatur tempora expedita. </p> </div>
因而,如果p元素創(chuàng)建一個新的BFC那它就不會再緊貼包含塊的左側(cè)了九串。
4.在多列布局中使用BFC
如果我們創(chuàng)建一個占滿整個容器寬度的多列布局绞佩,在某些瀏覽器中最后一列有時候會掉到下一行寺鸥。這可能是因為瀏覽器四舍五入了列寬從而所有列的總寬度會超出容器。但如果我們在多列布局中的最后一列里創(chuàng)建一個新的BFC品山,它將總是占據(jù)其他列先占位完畢后剩下的空間胆建。
html:
<div class="container"> <div class="column">column 1</div> <div class="column">column 2</div> <div class="column">column 3</div> </div>
css:
.column { width: 31.33%; background-color: green; float: left; margin: 0 1%; } /* Establishing a new block formatting context in the last column */ .column:last-child { float: none; overflow: hidden; }
現(xiàn)在盡管盒子的寬度稍有改變,但布局不會打破肘交。當(dāng)然笆载,對多列布局來說這不一定是個好辦法,但能避免最后一列下掉涯呻。這個問題上彈性盒或許是個更好的解決方案凉驻,但這個辦法可以用來說明元素在這些環(huán)境下的行為。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末复罐,一起剝皮案震驚了整個濱河市涝登,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌效诅,老刑警劉巖胀滚,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異填帽,居然都是意外死亡蛛淋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門篡腌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褐荷,“玉大人,你說我怎么就攤上這事嘹悼∨迅Γ” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵杨伙,是天一觀的道長其监。 經(jīng)常有香客問我,道長限匣,這世上最難降的妖魔是什么抖苦? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮米死,結(jié)果婚禮上锌历,老公的妹妹穿的比我還像新娘。我一直安慰自己峦筒,他們只是感情好究西,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著物喷,像睡著了一般卤材。 火紅的嫁衣襯著肌膚如雪遮斥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天扇丛,我揣著相機與錄音术吗,去河邊找鬼。 笑死帆精,一個胖子當(dāng)著我的面吹牛藐翎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播实幕,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堤器!你這毒婦竟也來了昆庇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闸溃,失蹤者是張志新(化名)和其女友劉穎整吆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辉川,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡表蝙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了乓旗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片府蛇。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖屿愚,靈堂內(nèi)的尸體忽然破棺而出汇跨,到底是詐尸還是另有隱情,我是刑警寧澤妆距,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布穷遂,位于F島的核電站,受9級特大地震影響娱据,放射性物質(zhì)發(fā)生泄漏蚪黑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一中剩、第九天 我趴在偏房一處隱蔽的房頂上張望忌穿。 院中可真熱鬧,春花似錦咽安、人聲如沸伴网。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澡腾。三九已至沸伏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間动分,已是汗流浹背毅糟。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留澜公,地道東北人姆另。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像坟乾,于是被迫代替她去往敵國和親迹辐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容