margin top重疊問題

2021-08-28 20:20:59 字數 1034 閱讀 4071

父子div的margin-top重疊問題,看如下示例:

.div1

.div2

在以上情況瀏覽器上出現的結果是,會使得父元素距上方有50畫素的現象:

解決方法是:

修改父元素的高度,增加padding-top樣式模擬(padding-top:1px,常用);

為父元素新增overflow:hidden;樣式即可(完美);

為父元素或子元素宣告浮動(float:left;可用);

為父元素新增border(border:1px solid transparent;可用);

為父元素或子元素宣告絕對定位。

邊界重疊一般指兩個或多個盒子(可能相鄰也可能巢狀)的相鄰邊界(其間沒有任何非空內容、補白、邊框)重合在一起而形成乙個單一邊界。

兩個或多個塊級盒子的垂直相鄰邊界會重合。邊界寬度則是相鄰邊界寬度中最大的值。如果出現負邊界,則在最大的正邊界中減去絕對值最大的負邊界。如果沒有正邊界,則從零中減去絕對值最大的負邊界。

注意:相鄰的盒子可能並非是由父子關係或同胞關係的元素組成。

邊界的重疊也有例外情況:

水平邊距永遠不會重合;

在規範文件中,2個或以上的塊級盒模型相鄰的垂直margin會重疊;

相鄰的盒模型中,如果其中的乙個是浮動的(float),垂直margin不會重疊,並且浮動的盒模型和它的子元素之間也是這樣;

設定了overflow屬性的元素和它的子元素之間的margin不會被重疊(overflow取值為visible除外);

設定了絕對定位(position:absolute)的盒模型,垂直margin不會被重疊,並且和他們的子元素之間也是一樣;

設定了display:inline-block的元素,垂直margin不會重疊,並且和他們的子元素之間也是一樣的;

根元素的垂直margin不會被重疊。

margin top重疊問題

html 複製 如下 css樣式 複製 如下 box1 box2 解決方法 1 修改父元素的高度,增加padding top樣式模擬 padding top 1px 常用 2 為父元素新增overflow hidden 樣式即可 完美 3 為父元素或者子元素宣告浮動 float left 可用 4 ...

margin top 實效問題

文章出處 css屬性有很多值得學習的地方,你對css中margin top屬性失效的解決方法是否熟悉,這裡和大家分享一下,相信通過本文的介紹你對margin top屬性失效的解決方法一定會有深刻的認識。關於margin top屬性失效的解決方法 常出現兩種情況 一 margin top失效 先看下面...

margin top 失效的問題

其實關於這個問題,老生常談了。在這裡說說因僅僅是因為想更加深刻的理解一下。lang en charset utf 8 documenttitle head box d1.d2 style class box class d1 class d2 div div div body html 為了看到效果...