盒子模型
- 所有元素都可以有宽高
- 所有元素都是一个矩形
- 所有元素都看成一个盒子
- 盒子包括:外边距+边框+内边距+元素内容
外边距设置
围绕在元素边框的空白区域是外边距。设置外边距会在元素外创建额外的“空白”
行级元素只有左右外边距,没有上下外边距
块级元素和行内块级元素外边距4个方向都有效
外边距要素
- 外边距的方向:top bottom left right
- 外边距尺寸:合法的尺寸单位,百分比
外边距语法
margin-方向:外边距尺寸;
- 使用百分比时,参考的是父级的尺寸
- 使用正值时,元素领地会扩张,使用负值时,元素领地会收缩
同时设置4个方向外边距
margin:10px 20px 30px 40px;
:上 右 下 左(外边距)
margin:10px 20px 30px;
:上 左右 下(外边距)
margin:10px 20px;
:上下 左右(外边距)
margin:10px;
:4个方向(外边距)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>外边距设置</title>
<style type="text/css">
.box{
background: #00ff00; width: 200px; height: 100px;
/* margin-top: 50px;
margin-bottom: 50px;
margin-left: 50px;
margin-right: 50px; */
margin: 10px;
}
</style>
</head>
<body>
<div style="background: red; height: 50px;"></div>
<div class="box"></div>
<div style="background: blue; height: 50px;"></div>
</body>
</html>
外边距的合并
- 当两个元素上下排列时,上下外边距会合并,它们将形成一个外边距,合并后的外边距取两者中最大值
- 当两个元素左右排列时,左右外边距会叠加
内边距设置
所有元素都可以设置内边距
内边距要素
- 内边距的方向:top bottom left right
- 内边距尺寸:合法的尺寸单位,百分比
内边距语法
padding-方向:内边距尺寸;
- 使用百分比时,参考的是父级的尺寸
- 内边距不能设置负值
同时设置4个方向内边距
padding:10px 20px 30px 40px;
:上 右 下 左(内边距)
padding:10px 20px 30px;
:上 左右 下(内边距)
padding:10px 20px;
:上下 左右(内边距)
padding:10px;
:4个方向(内边距)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>内边距设置</title>
<style type="text/css">
span{
background: #00ff00; border: 1px solid black;
/* padding-left: 30px;
padding-bottom: 30px;
padding-right: 30px;
padding-top: 30px; */
padding: 30px;
}
</style>
</head>
<body>
<div style="height: 50px;"></div>
<span>内边距设置</span>
</body>
</html>
box-sizing 属性
正常情况下,内边距和边框是在元素设置的宽度和高度之外进行绘制
box-sizing:content-box | border-box
- content-box:默认值,元素的宽高不包含边框和内边距
- border-box:元素的宽高包含边框和内边距
元素尺寸
-
height:设置元素的高度。属性值:auto(默认,自动识别高度)、px (像素)、cm、百分比等单位定义高度
-
width:设置元素的宽度。属性值:auto、px、cm、百分比
-
max-height:设置元素的最大高度。属性值:auto、px、cm、百分比
-
max-width:设置元素的最大宽度。属性值:auto、px、cm、百分比
-
min-height:设置元素的最小高度。属性值:auto、px、cm、百分比
-
min-width:设置元素的最小宽度。属性值:auto、px、cm、百分比
溢出隐藏
如果内容溢出了元素内容区域,是否对内容的边缘进行裁剪
overflow:visible | hidden | scroll | auto
- visible:默认值,内容不会被修剪,会显示在元素框之外
- hidden:内容会被修剪,并且溢出的内容不可见
- scroll:内容会被修剪,同时会显示滚动条,以便查看溢出的内容
- auto:当内容大于元素框时,内容会被修剪并显示滚动条;当内容小于元素框时,不会显示滚动条
元素居中
margin:0 auto;
元素水平居中,只对块级元素有效