2013-06-23 93 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并非自行关闭。