第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為何子元素的margin-top會傳遞給父元素?

為何子元素的margin-top會傳遞給父元素?

森林海 2019-04-09 20:24:02
如下面所示,child的margin-top傳遞到了parent上,這是為何?這應(yīng)該是跟垂直margin的合并機制有關(guān),這種父子之間的合并的規(guī)則是怎樣的?demo#parent{background:red;width:200px;height:200px;}#child{background:green;width:50px;height:50px;margin-top:50px;}
查看完整描述

2 回答

?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

外邊距合并指的是,當(dāng)兩個垂直外邊距相遇時,它們將形成一個外邊距。
合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者。
比較淺的規(guī)則詳見:w3schoolCSS外邊距合并。
以下皆為這里部分內(nèi)容的引用,其實是W3C的相應(yīng)規(guī)則的翻譯。
margin折疊的產(chǎn)生有幾個條件:
這些margin都處于普通流中,并在同一個BFC中;
這些margin沒有被非空內(nèi)容、padding、border或clear分隔開;
這些margin在垂直方向上是毗鄰的,包括以下幾種情況:
1、一個box的topmargin與第一個子box的topmargin
2、一個box的bottommargin與最后一個子box的bottommargin,但須在該box的height為auto的情況下
3、一個box的bottommargin與緊接著的下一個box的topmargin
4、一個box的topmargin與其自身的bottommargin,但須滿足沒創(chuàng)建BFC、零min-height、零或者“auto”的height、沒有普通流的子box
垂直方向上毗鄰的box不會發(fā)生折疊的情況:
根元素的外邊距不會參與折疊
一個有clearance的box的上下margin毗鄰,它會與緊接著的下一個box發(fā)生margin折疊,但折疊后的margin不會再與它們父box的bottommargin折疊
折疊邊距的計算
當(dāng)兩個margin都是正值的時候,取兩者的最大值;當(dāng)margin都是負值的時候,取的是其中絕對值較大的,然后,從0位置,負向位移;當(dāng)有正有負的時候,先取出負margin中絕對值中最大的,然后,和正margin值中最大的margin相加。但必須注意,所有毗鄰的margin要一起參與運算,不能分步進行。
知道了機制發(fā)生的條件,你應(yīng)該知道如何防止外邊距合并了吧。
關(guān)于BFC和haslayout(IE6/7中類似于BFC的概念),詳見hasLayout&&BlockFormattingContexts的3.3節(jié)。
                            
查看完整回答
反對 回復(fù) 2019-04-09
  • 2 回答
  • 0 關(guān)注
  • 362 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號