首页 > 代码库 > CSS 内边距与外边距
CSS 内边距与外边距
写项目的时候一直用到边距,今天用了一下午的时间好好研究了一下边距,发现CSS边距并非那么简单。这里就和大家分享一下:
一、内边距
如下面代码
html:
<div class="test"><div>
css:
.test{
width:100px;
height:100px;
background-color:#fbc;
padding:10px 20px 30px 40px;
}
这时候在这个div中会形成一个内容框它里顶部边框距离为10px,右边20px,下边30px,左边40px,这个内容框应该是100*100(横*竖)的框。他现在整个框应该为160*140。这个比较简单。
二、外边距
外边距就比较有趣了
html:
<div class="test">
<div class="test1"></div>
<div class="test2"></div>
<div>
css:
.test{
width:100px;
height:100px;
background-color:#fbc;
margin-top:10px;
}
.test1{
width:20px;
height:20px;
background-color:blue;
margin-top:10px;
}
.test2{
width:20px;
height:20px;
background-color:red;
margin-top:20px;
}
这个时候大家觉得会有什么样的状况,我和大家透露点这个时候div.test在他上边框上会产生一个10px的外边距;而div.test1上边框和div.test上边框重合,在它上边框也会产生一个10px的外边距,这个将于div.test上边距重合,同样的margin-bottom同样也是这个原理。margin-top和margin-bottom边距不会针对它父类div而产生边距,而是会和它父类或同等级的外边距进行重合,如果它们外边距都为正数,则取最大值,若有一个为负,则正负相加得到最后值。
这个大家可以去试试!
另外margin-left会针对他父类或他同级产生边距,将margin-left:10px,则这个元素里父类左边框距离为10px,而产生一个10px的边距,而margin-right就完全没有限制,只会影响同级元素,他可能会超过父类元素的宽度。同时,margin-left不存在上面重合的性质。