外邊距合并指的是,當(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的topmargin2、一個box的bottommargin與最后一個子box的bottommargin,但須在該box的height為auto的情況下3、一個box的bottommargin與緊接著的下一個box的topmargin4、一個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é)。