塊級元素的上外邊距(margin-top)和下邊外距(margin-bottom)有時會合併為單個外邊距,這樣的現象稱為「margin合併」。從此定義上,我們可以捕獲以下兩點重要資訊:
塊級元素,但不包括浮動和絕對定位元素,儘管浮動和絕對定位可以讓元素塊狀化。
只發生在垂直方向上,嚴格來說,是只發生在和當前文件流方向的相垂直的方向上,由於預設文件流是水平方向的,所以發發生margin合併是垂直方向的。
p
第一行第二行
則第一行和第二行之間的間距還是1em,因為第一行的margin-bottom和第二行的margin-top合併在一起了,而不是上下相加。
(2)父級和第乙個/最後乙個子元素。在預設狀態下,下面的三種設定是等效的:
(3)空塊級元素的margin合併。
.father
.son
此時.father所在的這個父級元素的高度僅僅為1em,因為.son這個空元素的margin-top和margin-bottom合併在一起了。
(1)正正取大指。
如果是相鄰兄弟合併:
.a
.b
此時,.a 和 .b 兩個之間的間距是50px,取最大那個值。
如果是父子合併:
.father
.son
此時,.father元素等同於設定了margin-top:50px,取最大的那個值。
如果是自身合併:
.a
此時,a元素的外部尺寸是50px,取最大的那個值。
(2)正負值相加。
如果是相鄰兄弟合併:
.a
.b
此時,.a 和 .b 兩個之間的間距是30px,是 -20px+50px 的值。
如果是父子合併:
.father
.son
此時,.father元素等同於設定了margin-top:30px,是 -20px+50px 的值。
如果是自身合併:
.a
此時,a元素的外部尺寸是30px,是 -20px+50px 的值。
(3)負負最負值。
如果是相鄰兄弟合併:
.a
.b
此時,.a 和 .b 兩個之間的間距是-50px,取絕對負值最大的值。
如果是父子合併:
.father
.son
此時,.father元素等同於設定了margin-top:-50px,取絕對負值最大的值。
如果是自身合併:
.a
此時,a元素的外部尺寸是50px,取絕對負值最大的值。 margin塌陷和margin合併問題及解決方案
父子巢狀元素在垂直方向的margin,父子元素是結合在一起的,他們兩個的margin會取其中最大的值.正常情況下,父級元素應該相對瀏覽器進行定位,子級相對父級定位.但由於margin的塌陷,父級相對瀏覽器定位.而子級沒有相對父級定位,子級相對父級,就像坍塌了一樣.margin塌陷解決方法1.給父級設...
margin塌陷 margin合併
原理 父子巢狀元素在垂直方向的margin,父子元素是結合在一起的,他們兩個的margi會取其中最大的值。正常情況下,父級元素應該相對瀏覽器進行定位,子級相對父級定位。但由於margin的塌陷,父級相對瀏覽器定位.而子級沒有相對父級定位,子級相對父級,就像坍塌了一樣。原理 兩個兄弟結構的元素在垂直方...
margin 外邊距合併問題
外邊距合併指的是,當兩個垂直外邊距相遇時,它們將形成乙個外邊距。合併後的外邊距的高度等於兩個發生合併的外邊距的高度中的較大者。外邊距合併 疊加 是乙個相當簡單的概念。但是,在實踐中對網頁進行布局時,它會造成許多混淆。簡單地說,外邊距合併指的是,當兩個垂直外邊距相遇時,它們將形成乙個外邊距。合併後的外...