1. 盒子模型
盒子模型(box model):可以把HTML中所有的元素都理解成盒子,用于装内容的容器
目的就是为了将HTML文档中的内容进行归纳整理,方便管理,从而达到布局的效果
内容区 content
边框 border
内边距 padding
外边距 margin
1. 内容区 content
元素中所有的子元素和文本等都在内容区中排列
内容区的大小使用width
和height
属性设置
width
设置内容区的宽度
height
设置内容区的高度
2. 边框 border
边框由三个部分组成,缺一不可!
-
边框的宽度
border-width
- 可以分别设置四个边框的宽度
border-top-width
border-right-width
border-bottom-width
border-left-width
- 可以利用
border-width
属性直接设置四个边框的宽度
border-width: 10px 20px 30px 40px;
上 右 下 左(顺时针)
border-width: 10px 20px 30px;
上 左右 下(顺时针)
border-width: 10px 20px;
上下 左右
- 可以分别设置四个边框的宽度
-
边框的样式
border-style
可选值:
solid
实线
dotted
点状虚线
dashed
虚线
double
双线- 可以分别设置四个边框的样式
border-top-style
border-right-style
border-bottom-style
border-left-style
- 可以利用
border-style
直接设置四个边框的样式
border-style: solid dotted dashed double;
(顺时针,和border-width一样)
- 可以分别设置四个边框的样式
-
边框的颜色
border-color
使用方式与border-width
一模一样
- 边框的简写属性:
border
border
属性可以设置边框所有的样式
border:border-width border-style border-color
(顺序无要求)
border-top
border-right
border-bottom
border-left
3. 内边距 padding
用于设置内容区域边框之间的距离
- 可以设置四个方向的内边距
padding-top
padding-right
padding-bottom
padding-left
- 注意:
- 设置内边距会影响盒子的大小
- 背景会延伸到内边距
内边距的简写属性:
padding
可以直接设置四个方向的内边距
padding: 10px 20px 30px 40px;
上 右 下 左(顺时针)
padding: 10px 20px 30px;
上 左右 下
padding: 10px 20px;
上下 左右
padding: 10px;
上下左右
4. 外边距 margin
用于设置盒子与盒子之间的距离,设置外边距并不会影响盒子可见框的大小,但是会影响盒子(其他盒子)的位置
-
可以设置四个方向的外边距:
margin-top
margin-right
margin-bottom
margin-left
-
注意:
- 盒子的排列是由上到下、由左到右进行排列的。因此改变盒子的上外边距和左外边距
会改变当前盒子的位置 - 改变盒子的下外边距和右外边距会改变其他盒子的位置
- 外边距可以设置负值,盒子会向反方向移动
- 盒子的排列是由上到下、由左到右进行排列的。因此改变盒子的上外边距和左外边距
- 外边距的简写属性
margin
属性可以直接设置四个方向的外边距
margin: 100px 200px 300px 400px;
(顺时针,使用方式与padding
一样)
示例如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>box model</title>.box {width: 200px;height: 200px;background-color: #c7edcc;}.box1 {width: 200px;height: 200px;background-color: #c7edcc;/* 边框的宽度 *//* border-width: 10px; *//* border-top-width: 10px;border-right-width: 20px;border-bottom-width: 30px;border-left-width: 40px; *//* border-width: 10px 20px 30px 40px; *//* border-width: 10px 20px 30px; *//* border-width: 10px 20px; *//* border-width: 10px; *//* 边框的样式 *//* border-style: solid; *//* border-top-style: solid;border-right-style: dotted;border-bottom-style: dashed;border-left-style: double; *//* border-style: solid dotted dashed double; *//* border-style: solid; *//* 边框的颜色 *//* border-color: red; *//* border-color: red yellow blue green; *//* 边框的简写属性 *//* border: 10px solid red; */}.box2 {width: 300px;height: 300px;background-color: #c7edcc;border: 1px solid #000;/* 设置四个方向内边距 *//* padding-top: 50px;padding-right: 50px;padding-bottom: 50px;padding-left: 50px; */padding: 10px 20px 30px 40px;padding: 10px 20px 30px;padding: 10px 20px;padding: 10px;}.son {width: 300px;height: 300px;background-color: #fde6e0;}.box3,.box4 {width: 200px;height: 200px;}.box3 {background-color: #c7edcc;/* 设置盒子的外边距 *//* margin-top: 100px;margin-left: 100px;margin-bottom: 100px;margin-right: 100px; */margin: 100px 200px 300px 400px;}.box4 {background-color: #fde6e0;margin-left: -100px;}
</head><body><div class="box"></div><div class="box1"></div><div class="box2"><div class="son"></div></div><div class="box3"></div><div class="box4"></div>
</body></html>