float嫂易、overflow 與 BFC

這篇文章的起因是在寫網(wǎng)站的過(guò)程中想用一個(gè)大的div抱住所有的float塊,通過(guò)控制大divwidth實(shí)現(xiàn)自適應(yīng)局中的效果(詳細(xì)原因見(jiàn)之前關(guān)于width的文章)匙姜。理想效果類似這樣脂倦,背后的back塊包住了所有的float信息塊:

3_1.png

最初的嘗試以失敗告終番宁,原因顯而易見(jiàn):float元素會(huì)脫離正常的文檔流,使父元素的正常文檔流中空無(wú)一物赖阻,在沒(méi)有設(shè)置父元素高度的情況下造成父元素back高度塌陷蝶押。

在解決這一問(wèn)題的過(guò)程中,對(duì)floatBFC有了更近一步的認(rèn)識(shí)政供,下面就簡(jiǎn)單介紹一下播聪。

float布局

提到float朽基,我總是想把它和一種position歸到一起。的確离陶,浮動(dòng)和定位有很多讓人感覺(jué)相似的地方稼虎。但正如雙魚書上所說(shuō):“浮動(dòng)不完全是定位,不過(guò)招刨,它當(dāng)然也不是正常流布局”霎俩。關(guān)于浮動(dòng)有太多細(xì)碎的知識(shí)點(diǎn),我在下面選出了自己認(rèn)為比較重要的幾點(diǎn)作簡(jiǎn)要介紹:

  • 浮動(dòng)元素的包含塊是其最近的塊級(jí)祖先元素沉眶。
  • 浮動(dòng)與定位都可以使元素跳脫出正常的文檔流實(shí)現(xiàn)自由布局打却,但兩者給予的自由程度不同。利用定位我們可以精確設(shè)置元素的具體位置谎倔。而在浮動(dòng)中我們只能借助瀏覽器幫助我們安放元素柳击,而安放的具體依據(jù)是一系列關(guān)于元素左、上片习、右邊界的具體限制捌肴,具體內(nèi)容可參考雙魚書第十章。

在后來(lái)的操作過(guò)程中發(fā)現(xiàn)藕咏,其實(shí)并不需要讓back包裹住所有float信息塊状知,就算back高度為0,也能讓所有float信息塊實(shí)現(xiàn)局中孽查,具體效果如下:

3_2.png

原因我想在于關(guān)于float元素左饥悴、右邊界的兩條限制:

  • 左浮動(dòng)元素的左外邊界不能超出其包含塊左內(nèi)邊界
  • 左浮動(dòng)元素的右外邊界不能超出其包含塊右內(nèi)邊界盲再。

overflow:hidden 與 BFC

雖然在局中這里沒(méi)有太大的必要西设,但如何才能讓一個(gè)大的div包含住所有的float元素呢?百度了一下答朋,很多都提到了這樣一個(gè)方法:

overflow:hidden

嘗試了一下济榨,這個(gè)方法確實(shí)能成功,但感覺(jué)很多人并沒(méi)有說(shuō)清楚這個(gè)為什么有用绿映。這里講一下自己粗淺的理解擒滑。

首先要明確的是,設(shè)置overflow屬性的初衷并不是為了解決與float相關(guān)的這些奇奇怪怪的問(wèn)題的叉弦。overflow的目的只是為了設(shè)置元素內(nèi)容對(duì)于元素大小來(lái)說(shuō)過(guò)大丐一,溢出元素本身時(shí)的處理方式。之所以這里設(shè)置overflow:hidden能解決問(wèn)題淹冰,只是因?yàn)檫@恰好觸發(fā)了在設(shè)置overflow:hidden時(shí)元素自帶的BFC機(jī)制库车,而這一機(jī)制幫助我們解決了包裹float元素這一問(wèn)題。

BFC只是一套渲染規(guī)則樱拴,它決定了元素的子元素將如何定位柠衍,以及其和其他元素的關(guān)系和相互作用洋满。很多時(shí)候我們都用到了BFC,只不過(guò)我們不知道而已珍坊。常見(jiàn)的如:

position:absolute
position:fixed

BFC規(guī)則最明顯的特征在于它是一個(gè)獨(dú)立的渲染區(qū)域牺勾。獨(dú)立意味著,與外界相隔離阵漏。一旦元素創(chuàng)建了一個(gè)BFC驻民,它其中的所有元素都會(huì)被它包裹,同樣履怯,容器里面的子元素不會(huì)影響到外面的元素(注意是在渲染的層面上)回还。

正因問(wèn)BFC的這一特性,使其巧妙地解決了包裹float元素這一問(wèn)題叹洲。同時(shí)柠硕,根據(jù)CSS外邊距疊加的規(guī)則,BFC也可以用以阻擋外邊距疊加运提。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仅叫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子糙捺,更是在濱河造成了極大的恐慌,老刑警劉巖笙隙,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洪灯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡竟痰,警方通過(guò)查閱死者的電腦和手機(jī)签钩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坏快,“玉大人铅檩,你說(shuō)我怎么就攤上這事∶Ш瑁” “怎么了昧旨?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)祥得。 經(jīng)常有香客問(wèn)我兔沃,道長(zhǎng),這世上最難降的妖魔是什么级及? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任乒疏,我火速辦了婚禮,結(jié)果婚禮上饮焦,老公的妹妹穿的比我還像新娘怕吴。我一直安慰自己窍侧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布转绷。 她就那樣靜靜地躺著伟件,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暇咆。 梳的紋絲不亂的頭發(fā)上锋爪,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音爸业,去河邊找鬼其骄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扯旷,可吹牛的內(nèi)容都是我干的拯爽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钧忽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼毯炮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起耸黑,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤桃煎,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后大刊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體为迈,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年缺菌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葫辐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伴郁,死狀恐怖耿战,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情焊傅,我是刑警寧澤剂陡,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站狐胎,受9級(jí)特大地震影響鹏倘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜顽爹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一纤泵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦捏题、人聲如沸玻褪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)带射。三九已至,卻和暖如春循狰,著一層夾襖步出監(jiān)牢的瞬間窟社,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工绪钥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灿里,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓程腹,卻偏偏與公主長(zhǎng)得像匣吊,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寸潦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案色鸳? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,751評(píng)論 1 92
  • 一,浮動(dòng)元素有什么特征见转?對(duì)父容器命雀、其他浮動(dòng)元素、普通元素斩箫、文字分別有什么影響? 浮動(dòng)模型是一種可視化格式模型吏砂,浮動(dòng)...
    DeeJay_Y閱讀 868評(píng)論 0 4
  • relative:生成相對(duì)定位的元素,通過(guò)top,bottom,left,right的位置相對(duì)于其正常位置進(jìn)行定位...
    zx9426閱讀 942評(píng)論 0 2
  • 學(xué)會(huì)使用CSS選擇器熟記CSS樣式和外觀屬性熟練掌握CSS各種選擇器熟練掌握CSS各種選擇器熟練掌握CSS三種顯示...
    七彩小鹿閱讀 6,314評(píng)論 2 66
  • 《莊子·秋水》坎井之蛙謂東海之鱉曰:“吾樂(lè)與!出跳梁乎井干之上,入休乎缺甃之崖校焦;赴水則接腋持頤,蹶泥則沒(méi)足滅跗,還...
    雪夜長(zhǎng)刀閱讀 734評(píng)論 0 1