实验原理
css盒子模型(Box Model)
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用.CSS盒子模型本质上是一个盒子,封装周围的HTML元素,它包括:
1、边距
2、边框
3、填充
4、实际内容
盒模型允许我们在其他元素和周围边框之间的空间放置元素,平面图如下所示:
- Margin(外边距)-盒子以外或者盒子与盒子之间的距离,外边距是透明的
- Border(边框)-盒子厚度
- Padding(内边距)-内容和盒子之间的距离
- Content(内容)-盒子的内容 , 显示文本和图像
说明
- 元素框的最内部分(element)是实际的内容,有宽(width)和高(height)两个属性,直接包围内容的是内边距(padding)。内边距呈现了元素的背景,内边距的边缘是边框(border),边框是可以有厚度的。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。
- 内边距、边框和外边距都是可选的,默认值是0.可以通过将元素的margin和padding设置为0来覆盖浏览器样式,可以分别进行,也可以使用全局选择器进行设置:
*{
margin:0;
padding:0;
}
- 盒子模型属性(margin、padding、border)顺时针分为:上右下左4个方向,3个属性都可以分别设置各个方向属性值,也可以同时设置4个方向属性值,3个属性都占据空间
CSS盒子模型(Box Model)尺寸
在CSS中,width和height指的是内容区域的宽度和高度。增加内边距、边框和外边框不会影响内容区域的尺寸,但是会增加元素框的总尺寸。假设框的每个边上有10个像素的外边距和5个像素的内边距。如果希望这个元素框达到100个像素,就需要将内容的宽度设置为70个像素,请看下图:
#box {
width:70px;
margin:10px;
padding:5px;
}
内边距、边框和外边距可以应用于一个元素的所有边,已可以应用于单独的边,而且外边距可以是负值,而且在很多情况下都要使用负值的外边距。
DIV盒子模型
<div>元素常用用作布局工具,和css盒子结合起来用来构建网页的整体布局
《一》 CSS边框属性border
CSS允许制定一个元素边框的样式和颜色
- border-style属性用来定义边框的样式。
border-style :
none:默认无边框;
dotted:定义一个虚线边框;
solid:定义实线边框 - border-width 边框指定宽度。
为边框指定宽度有两种方法:可以指定长度值,比如2px 或 1em(单位为 px , pt ,cm ,em等),或者使用
3个关键字之一:
thick、
medium(默认)、
thin。 - border-color属性用于设置边框的颜色。可以设置的颜色:
name-指定颜色的名称,如"red";
RGB-指定RGB值,如"rgb(252,450,9)";
Hex-指定16进制值,如"ff0000" - 可以再一个属性中设置边框:border:5px solid red;
注意: border-color单独使用是不起作用的,必须先使用border-style来设置边框样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>边框</title>
<style>
p.p1{
border-style:none;
border-width: 5px;
border-color: red;
}
p.p2{
border-style:dotted;
border-width: 6px;
border-color: #98bf21;
}
p.p3{
border-style: dashed;
border-width: 4px;
border-color: rgb(252,450,9);
}
p.p4{
border: medium solid pink;
}
</style>
</head>
<body>
<p class="p1">无边框</p>
<p class="p2">虚线边框</p>
<p class="p3">虚线边框</p>
<p class="p4">实线边框</p>
</body>
</html>
《二》CSS padding(内边距)和margin
CSS padding(填充)是一个简写属性,定义元素边框与元素内容之间的空间,即上下左右的内边距,具体如下所示:
当然也可以简写:padding:25px 50px;表示上下填充为25px ,左右填充为50px
box2.html 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
.box{
width: 800px;
height: 400px;
border: 5px solid red;
}
.box1{
/* 设置背景*/
background: pink;
/*设置padding*/
padding-top:25px;
padding-bottom:25px;
padding-right:50px;
padding-left:50px;
/*设置宽高*/
width: 200px;
height: 150px;
/*设置margin*/
margin-top:100px;
margin-bottom:100px;
margin-right:50px;
margin-left:50px;
/*让box1左浮动*/
float: left;
}
.box2{
/* 设置背景*/
background: deeppink;
/*设置padding,上下20px,左右20px*/
padding: 20px 20px;
/*设置宽高*/
width: 200px;
height: 150px;
/*设置margin*/
margin:100px 50px;
/*让box2左浮动,box2会浮动在box1的右边*/
float: left;
}
</style>
</head>
<body>
<div class="box">
<div class="box1">
I am is box1
</div>
<div class="box2">
I am is box2
</div>
</div>
</body>
</html>