1. margin
1.1. margin设置元素的外边距宽度,按上右下左的顺序
1.2. 块级元素的垂直相邻外边距会合并,外边距不同时,取最大值
.box1, .box2{
width: 100px;
height: 100px;
background: red;
margin: 10px 10px;
}
.box2{
margin: 20px 10px;
}
/*html代码*/
<div class="box1"></div>
<div class="box2"></div>
1.3. 行内元素不占上下外边距,行内元素的的左右外边距不会合并
1.4. 浮动元素不会合并外边距
代码同上,box1,box2增加浮动属性
1.5. 相对定位时,块级元素垂直外边距会合并
1.6. 绝对定位时,外边距是基于绝对定位的位置再计算
.box1, .box2{
width: 100px;
height: 100px;
margin: 10px 10px;
position: absolute;
}
.box1{
background: red;
}
.box2{
left: 100px;/*距离左边为100px*/
background: black;
/*左右外边距为零*/
margin: 20px 0px;
}
/*html代码*/
<div class="box1"></div>
<div class="box2"></div>
1.7. 行内元素
.box1{
width: 100px;
height: 100px;
margin: 10px 10px;
background: red;
}
.box2{
width: 100px;
height: 100px;
background: black;
margin: 20px 20px;
}
/*html代码*/
<div class="box1"></div>
<span class="box1">tdtnzdbfthdt</span>
<span class="box1">tdtnzdbfthdt</span>
<div class="box2"></div>
1.8. 百分比
margin宽度可以用百分比值,是基于父元素的宽度进行计算
1.9 父子元素之间的margin-top
#box1{
width: 400px;
height: 200px;
background: red;
}
#box2{
width: 100px;
height: 50px;
background: gray;
margin-top: 10px;
}
/*html代码*/
<div id="box1">
<div id="box2"></div>
</div>
按道理,子元素应该距离父元素顶部10px的距离...
解决方法:
1.9.1. 给父元素添加border
1.9.2. 给父元素添加overflow: hidden;(推荐)
1.9.3. 给父元素添加内边距
2. padding
2.1. padding设置元素的内边距的宽度,不允许负值。当元素有背景和内边距时,背景会延伸至内边距
.box1,.box2{
width: 100px;
height: 100px;
padding: 10px 10px;
}
.box1{
background: red;
}
.box2{
background: black;
}
/*html代码*/
<div class="box1"></div>
<div class="box2"></div>
有背景图片的(html代码同上,仅增加背景图片):
2.2 行内元素
2.2.1 对于行内元素,有一个很特别的地方
2.2.2.
.box2{
padding: 10px 10px;
background: red;
font-size: 20px;
}
.box1{
width: 200px;
height: 100px;
padding: 20px 10px;
background: black;
}
/*html代码*/
<div class="box1"></div>
<span class="box2">gnfjyfajgirnnicfxndj</span>
<span class="box2">gnfjyfyskxndj</span>
2.3. 绝对定位
.box1,.box2{
width: 100px;
height: 100px;
position: absolute;
background: black;
}
.box2{
padding: 0 100px;/*左右增加100px内边距*/
top: 100px;
left: 100px;
}
/*html代码*/
<div class="box1"></div>
<div class="box2"></div>
2.4. 百分比
设置padding宽度用百分比时,是基于父元素的宽度进行计算,所以只有块级元素适用