為什麼margin top不是作用于父元素

2021-07-10 17:53:08 字數 1875 閱讀 5890

為什麼margin-top不是作用于父元素:

至於margin-top屬性的基本用法再簡單不過,那就是設定乙個物件的上外邊距,看下面的**例項:

>螞蟻部落

title

>

<

style

type

="text/css"

>

* div

style

>

head

>

<

body

>

<

div>

div>

body

>

html

>

以上**可以將div的上邊距設定為50px,一切執行良好,沒有任何問題,再來看下一段**:

>螞蟻部落

title

>

<

style

type

="text/css"

>

#parent

#children

style

>

head

>

<

body

>

<

div

id="parent"

>

<

div

id="children"

>

div>

div>

body

>

html

>

以上**的初衷是讓子元素的頂部距離父元素50px,但是事實上卻並沒有實現預期的效果,而是子元素頂部緊貼父元素,並且margin-top好像轉移給了父元素,讓父元素產生上外邊距。這其實是乙個典型的外邊距合併問題,但是並非所有的瀏覽器都會產生這種情況,一般標準瀏覽器都會出現此現象,而ie6和ie7在此狀態下不會出現外邊距合併現象。上外邊距合併出現的條件:

1.父元素的上邊距與子元素的上邊距之間沒有border。

2.父元素的上邊距與子元素的上邊距之間沒有非空內容。

3.父元素的上邊距與子元素的上邊距之間沒有padding。

3.父元素和子元素中沒有設定定位屬性(除static和relative)、overflow(除visible)和display:inline-block等。

4.父元素或者資源都沒有浮動。

注意:以上條件必須都要滿足才可以。那麼解決此中情況的方式也很簡單,只要破壞上面的一種情況就可以了。

為什麼這個margin top會影響父元素?

本來想子元素離父元素高度margin top也離50px 結果重疊了。好像父元素下落了50px 直接貼上了子元素 2d旋轉 產生負作用 導致父元素的背景顏色不顯示。解決方案一 在父元素新增border屬性.father。解決方案二 採用消除塌陷 在父元素新增屬性.father 另外附上同類問題 及其...

為什麼watch機制不是銀彈?

幾乎所有構建系統都選擇使用watch機制來解決開發過程中需要反覆生成構建後檔案的問題,但在watch機制下,長期以來我們必須忍受修改完 儲存完 必須喝口茶才能重新整理看看效果的問題。在這裡我們嘗試 為什麼watch不是銀彈,並嘗試尋找一種更好的方案來解決這個問題。watch基於的事實當乙個檔案修改,...

div巢狀引起的margin top不起作用

巢狀div中margin top轉移問題的解決辦法 在這兩個瀏覽器中,有兩個巢狀關係的div,如果外層div的父元素padding值為0,那麼內層div的margin top或者margin bottom的值會 轉移 給外層div。上部層解決辦法 1 在父層div加上 overflow hidden...