0

http://jsfiddle.net/MqPDH/10/

为什么第一次包装.wp-list margin: 10px.a .b使用margin: 10px不起作用?

.wp{
    background-color: blue;
    position: absolute;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    width: 450px;
}
.wp_list{
    background-color: red;
    margin: 10px;
    height: 130px;
    position:relative;
}
.a, .b, .c{
    background-color: gray;
}
.a{
    width: 220px;
    height: 30px;
    margin: 10px;
}
.b{
    width: 220px;
    height: 100px;
    margin: 10px;
}
.c{
    width: 130px;
    height: 130px;
    top:0;
    right:0;
    position:absolute;
}

HTML:

<div class="wp">
    <div class="wp_list">
        <div class="a">a</div>
        <div class="b">b</div>
        <div class="c">c</div>
    </div>
    <div class="wp_list">
        <div class="a">a</div>
        <div class="b">b</div>
        <div class="c">c</div>
    </div>
    // generate from php
</div>
4

2 回答 2

1

这主要是因为它表现为内联元素。添加display: inline-block;

.wp_ist{
    display: inline-block;
    background-color: red;
    margin: 10px;
    height: 130px;
    position:relative;
}
于 2013-05-29T23:45:16.320 回答
1

垂直边距可能会在块级元素上折叠,这意味着当您有一个10px在底部设置了边距的元素,然后是5px在顶部设置了边距的元素时。两者之间的边距不会是15px,而是会塌陷到两者中的最大者:10px,或者在这种情况下,当它们都是 时10px,它将塌陷为10px

您应该添加display: inline-block;.a, .b, .c,这将解决它:

.a, .b, .c{
    background-color: gray;
    display: inline-block;  
}

jsFiddle

于 2013-05-29T23:47:37.123 回答