CSS为什么我的代码不起作用?

时间:2015-04-28 19:23:17

标签: css

HTML

<div id="galerie">
    <div id="stanga">
    </div>
</div>

CSS

#galerie {
    margin-top: 5%;
    width: 974px;
    height: 500px;
    margin-left:auto;
    margin-right:auto;
    background-color:yellow;
}
#stanga {
    width: 50px;
    height: 50px;
    background-color: red;
    margin-top:20px;
    margin-left: 0px;
}

我希望我的红色方块从黄色容器中获得margin-top:10pxhttp://jsfiddle.net/97fzwuxh/16/

4 个答案:

答案 0 :(得分:2)

边距会因设计而崩溃,因此您的内部边距会影响您的外部div。

overflow:auto添加到#galerie样式

padding:1px添加到#galerie样式

您的问题称为adjoining

如果两个边距属于垂直相邻的框边缘,则它的第一个插入子框的两个边距为adjoinin

答案 1 :(得分:0)

边距不起作用,因为它们正在折叠,请使用:

position: relative;
top: 20px;

这里有更新的小提琴:“http://jsfiddle.net/97fzwuxh/18/

答案 2 :(得分:0)

你可以使用绝对值。

#galerie {
    position: relative;
    margin-top: 5%;
    width: 974px;
    height: 500px;
    margin-left:auto;
    margin-right:auto;
    background-color:yellow;
}

#stanga {
    position: absolute;
    width: 50px;
    height: 50px;
    background-color: red;
    margin-top: 10px;
    margin-left: 0px;
}

答案 3 :(得分:0)

你需要位置:外部元素的相对位置(#galerie) 和位置:内部元素上的绝对值(#stanga)

#galerie {
    width: 974px;
    height: 500px;
    background-color:yellow;
    position: relative;
}

#stanga {
    width: 50px;
    height: 50px;
    background-color: red;
    margin-top:200px;
    position: absolute;
}

这是更新的工作小提琴: http://jsfiddle.net/97fzwuxh/19/

另外,阅读这篇文章我发现它非常有用:https://css-tricks.com/absolute-positioning-inside-relative-positioning/

TLDR:具有相对定位的页面元素使您可以将子元素绝对定位在其中。