为什么第一个包裹.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>
答案 0 :(得分:1)
这主要是因为它表现为内联元素。添加display: inline-block;
.wp_ist{
display: inline-block;
background-color: red;
margin: 10px;
height: 130px;
position:relative;
}
答案 1 :(得分:1)
Vertical margins may collapse on block level elements,这意味着当您在底部设置了10px
边距设置的元素,然后在顶部设置了5px
边距设置的元素。两者之间的差距不会是15px
,而是会崩溃到两者中最大的一个:10px
,或者在这种情况下,当它们都是10px
时,它会崩溃到是10px
。
您应该将display: inline-block;
添加到.a, .b, .c
,以解决问题:
.a, .b, .c{
background-color: gray;
display: inline-block;
}