CSS的的margin属性在页面布局中的使用攻略属性在页面布局中的使用攻略
基础基础
1.元素元素containing-box宽高度等于内容宽度宽高度等于内容宽度
HTML
XML/HTML Code复制内容到剪贴板
<div class="wrap">
<div class="item1"></div>
<div class="item2"></div>
</div>
CSS
CSS Code复制内容到剪贴板
.wrap {
float: left;
border: 2px solid #000;
}
.item1 {
width: 100px;
height: 100px;
background: #fdf;
margin-left: 10px;
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
}
item2 {
width: 50px;
height: 50px;
background: #adf;
}
能满足原理1的条件只有一种,元素不设宽度且不在文档流中,此时,父元素wrap产生的containing-box的宽高宽度等子元素
border-box的宽高度加上外边距的宽高度,也就是说,子元素的margin值也是其containing-box的一部分。margin一共有两类
参考线,第一类是margin-top与margin-left的参考线,第二类是margin-bottom与margin-right的参考线,第一类margin的参考线是
以其所处的containing-box的边缘线为参考线,如上例所示,当调整元素.item1的margin-top与margin-left的值时,元素.item1所处
的containing-box的大小也在发生变化因此其边缘线也在不断变化同时也就导致.item1元素自身的位置也在发生变化,看起来就
是.item1自身发生了移动。第二类margin的参考线是以元素自身的边缘线(外边距的外侧为边缘线)为参考线,同样的,调整上例中
的margin-bottom值,.item1的margin-bottom也在不断的发生变化,也就是说其自身边缘线在不断的移动,同时导致了.item2的移
动。根据上面的论述,我们可以得出结论,外边距的调整也就等于让其自身相对的参考线的位置在发生移动,同时导致相对于参考