2011-04-21 220 views
5

我一直认为我理解利润率和负利润率,但显然我不知道!我刚开始一个新的设计并且遇到了问题。利润率和负利润率

我有一个div(hill3Cont)和另一个div(hill3Hill)嵌套在里面,这是他们的CSS。

#hill3Cont 
{ 
    width: 100%; 
    background-image: url("images/grass.jpg"); 
} 
#hill3Hill 
{ 
    margin: -100px 0 0 0; 
    height: 600px; 
    width: 100%; 
    background: url("images/hill3.png") no-repeat center top; 
} 

我已经申请阴性切缘来是希望它会推动这个内容父div的边界之外的孩子div的顶部。但它不,它不动。如果我应用积极的边际,它会推动父div与其中的孩子。

我可以使其正确行为的唯一方法是使用隐藏在父div上的边框或溢出,但设计不会允许这些中的任何一个(我不希望边框和溢出隐藏隐藏子)。

也许这只是漫长的一天,我错过了一些共同点!提前谢谢了。

编辑: 我有一个解决方案,我已经把一个填充顶部的父div,填充:1px 0 0 0.它适用于我的设计,所以我很高兴,但仍然渴望找出什么是发生。

+0

我不明白为什么事情正在他们的方式。在看过亚历山大的解决方案后,我发现我们已经得到了解决问题的答案,但没有答案为什么你不工作。为什么添加边框会使您的版本发挥作用? – mrtsherman 2011-04-25 15:32:36

回答

5

对于父元素内部的子元素使用相对位置和负顶点代替。

http://jsfiddle.net/GEwj3/3/

#hill3Cont 
{ 
    margin-top: 50px; 
    width: 200px; 
    height: 200px; 
    background-color: red; 
} 
#hill3Hill 
{ 
    height: 50px; 
    width: 100px; 
    background: blue; 
    position: relative; 
    top: -20px; 
} 
+0

仍然没有不幸的是,这是我的情况的一个更接近的例子,我没有边界(它似乎修复了它)http://jsfiddle.net/GEwj3/1/ 当我把一个边框修复它 http://jsfiddle.net/GEwj3/2/ – Chris 2011-04-21 21:59:11

+1

嗯,我想我也学到了一两件事。如果使用负边距,那么子元素显然不能浮出其父元素。如果你想这样做,然后使用相对位置与负的顶部偏移量。 http://jsfiddle.net/GEwj3/3/ – mrtsherman 2011-04-22 05:45:44

0

目前尚不清楚,我认为保证金负值应该给你想要的行为,而不是被视为零。我会避免它们作为潜在的未定义行为。