2009-11-28 65 views
3

這裏是我的CSS(簡體):問題的透明保證金

body { 
    background: url('bg.gif') left top; 
} 
#content { 
    background: #ddd; 
} 
.box { 
    overflow: hidden; 
    margin-top: 10px; 
    background: #1e1e1e url('left-bottom-corner.gif') left bottom no-repeat; 
} 

而且標記:

<div id="content"> 
    <div class="box"> 
     <p>lorem ipsum</p> 
    </div> 
</div> 

現在的問題。在.box有10px頂部邊距的地方,#content div的背景是不可見的,相反,主體的背景是可見的。

我無法使用填充,因爲我需要將.box divs設置爲具有圓形邊框和自己的背景,所以我必須使用邊距。

我該如何解決這個不正確的行爲?

+0

看到這裏:http://stackoverflow.com/questions/315738/unexpected-margin-with-very-simple-html – mercator 2009-11-28 22:21:01

回答

4

這不是一個錯誤 - 它被稱爲margin collapsing

你可以用防止邊距觸摸 - 這就是爲什麼添加填充或邊框修復它。

+0

我看過那篇文章,在我看來,它與我的問題沒有關係,有沒有兩個邊緣觸及任何地方。只有一個上限,上方沒有餘量。所以沒有什麼可以崩潰的。邊距創建正確的空間(10px)。問題是爲什麼身體的背景是可見的而不是#content div的背景。 – 2009-11-28 22:21:44

+0

非常好!最後,爲我解答最後剩下的css-mysteries之一。還有一個很好的文章來解釋它。謝謝,格雷格。我知道邊緣崩潰,但從來不會猜測它會導致「太多」的邊際。 – Magnar 2009-11-28 22:23:11