2013-06-23 129 views
0

的頂白色的空間,我在我的網站上這樣一個DOM:奇怪的CSS行爲,對身體

<html> 
    <body> 
     <div id='topbar'/> 
     <div id='centerframe'/> 
    </body> 
</html> 

與CSS規則:

html 
{ 
    margin:0; 
    padding:0; 
} 

body 
{ 

    background:url('/images/brickwall.jpg'); background-size: 10%; 
    width:100%; 
    height:100%; 
    margin:0; 
    padding-top:0; 
} 

div#centerframe 
{ 

    background:rgba(255, 255, 255, 0.85); 
    box-shadow:0em 0.5em 2em 0.3em; 
    padding:90px; 
    margin-left:  180px; 
    margin-right:  160px; 
    margin-top:   200px; /* this also causes body to slide down 200px , when body{padding-top:0} . why ? */ 

} 

#topbar 
{ 
    position:fixed; 
    display:block; 
    float:left; 
    width:100%; 
    height:80px; 
    top:0; 
    margin-top:0%; 
    background:rgba(0,0,0,1); 
} 

和這個CSS會導致這樣一個問題:身體頂部有一個邊際,即使我告訴它margin:0;這裏的屏幕截圖: problem

但是當我更改CSS,使body{padding-top: 1px;}(而不是0),它的工作原理應該如此。看到屏幕上限: normal

它也適用於當我添加此規則:#centerframe{float:left;}但它會導致其他問題,如擴大到超過100%的寬度。

無論如何,所以我解決了這個問題,1px的填充。但爲什麼問題在那裏呢?

<body/>孩子怎樣才能改變它的頂邊距?

謝謝!

回答

0

我無法重新創建的jsfiddle這種行爲,所以我不能說具體的任何事情。你知道這是否是瀏覽器問題嗎?

你的身體肯定沒有利潤,因爲頂欄總是在最高層,所以這是你的身體開始的地方。也許這是移位(對於一些尷尬的原因),只是背景。你玩過背景位置屬性嗎?

3

你的問題是由margin collapse由於瀏覽器在處理如何成功的元素,包括您顯示圖像而引起的。這是由您添加填充證明,但我沒有測試過這一點。

注意的是,在你的榜樣,<div />是無效的。 Div並非自行關閉。