2013-06-19 103 views
2

爲什麼h1,h2,h3元素邊距在div中被忽略?h1,h2,h3 ..元素吃div div邊緣

http://jsfiddle.net/TzmdZ/

<div class="col"> 
    <h3>This is header</h3> 
</div> 
<div class="col"> 
    <h3>This is header</h3> 
</div> 

.col { 
    background: gray; 
    margin-bottom: 1em; 
} 

.col h3 { 
    margin-bottom: 1em; 
} 

當我把^ h元素插入DIV並且在它沒有其他文字,雖然^ h元素和div元素底部的邊距spicified,H底邊距被忽略。

+0

這是正確的行爲,你要的是給你的'col'類'填充底:1EM;' – Brewal

+0

我不知道什麼是你試圖做...但也許你正在嘗試做一個填充:檢查'padding-bottom:1em;'而不是。 – maqjav

+0

您嘗試忽略底部邊距設置邊距:-18px;在.col css –

回答

3

爲兩個兄弟姐妹分配邊距會導致邊距在相鄰邊緣處摺疊。

MDN document詳細解釋了情況。

頂部和塊的底部邊緣有時合併(摺疊) 成一個單一的餘量,其尺寸是最大的邊緣的組合 進去,稱爲餘量摺疊行爲。

保證金塌陷發生在三個基本情況:

  1. 相鄰的兄弟姐妹
  2. 家長和第一/最後一個子
  3. 空塊
+0

謝謝,這就是我真正想知道的 – Lambrusco

0

試試這個CSS:

.col { 
    background: gray; 
    padding-bottom: 1em; 
} 

.col h3 { 
    padding-bottom: 1em; 
} 

更改margin-bottompadding-bottom

jsFiddle