div将margin-top继承到其父级,而不是父级

时间:2013-05-30 08:43:16

标签: html css margin

我有一个div布局和一个带有margin-top的div没有得到其父级的margin-top,但是父级现在有一个margin-top。如何让div class = box_container再次与它上面的div class = container对齐?

jsfiddle

HTML

        <div class="right">
        <div class="container">
        </div>
        <div class="box_container">
            <div class="boxwrap">
                <div class="box" ></div>    
                <div class="box" ></div>    
                <div class="box" ></div>    
                <div class="box" ></div>    
            </div>
        </div>
    </div>

CSS

.right{
height: 100%;
width: 250px;
background-color: blue;
position:relative;
float: right;
}

.container{
height: 225px;
width: 250px;
background-color: lightsteelblue;
}

.box_container{
height: 140px;
width: 250px;
background-color: darkslategray;
clear: both;
}


.boxwrap{
width: 245px;
height: 50px;
margin-left: 5px;
margin-top:20px;
clear: both;
}

.box{
height: 50px;
width: 50px;
margin-left: 5px;
margin-right: 5px;
float: left;
background-color: red;
}

2 个答案:

答案 0 :(得分:1)

这被称为“margin collapse”。这里的简单解决方案是使用填充顶部,但是当这不合适时,您可以通过为容器提供顶部边框或一些顶部填充来阻止边缘悬挂在容器外。 E.g。

.box_container {
    padding-top: 1px;
}

答案 1 :(得分:0)

尝试使用padding代替margin - 您需要的是什么?看看这个小提琴 - http://jsfiddle.net/skip405/ALuqW/