1:什么是盒子模型?
最重要的一点就是水平方向外边距是会叠加的哈
内容+内边距+边框+外边距==盒子模型;
注意一下:外边距是没有背景颜色的哈.设置不了的哈.
举例子:
结论
1.在HTML中所有的标签都可以设置
宽度/高度 == 指定可以存放内容的区域
内边距 == 填充物
边框 == 手机盒子自己
外边距 == 盒子和盒子之间的间隙
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style type="text/css">
*{padding: 0px;margin: 0px;}
span,a,b,strong
{
display:inline-block;
width: 100px;
height: 100px;
border: 6px solid #000;
padding: 20px;
margin:20px;
}
</style>
</head>
<body>
<span>我是span</span>
<a href="#">我是超链接</a>
<b>我是加粗</b>
<strong>我是强调</strong>
</body>
</html>
效果:
2:盒子模型宽度和高度(重要)
1.内容的宽度和高度
就是通过width/height属性设置的宽度和高度
2.元素的宽度和高度
宽度 = 左边框 + 左内边距 + width + 右内边距 + 右边框
高度 同理可证
3.元素空间的宽度和高度
宽度 = 左外边距 + 左边框 + 左内边距 + width + 右内边距 + 右边框 + 右外边距
高度 同理可证
什么是内容?
width+height
什么是元素?
边框 + 内边距 + 内容宽度/内容高度 。
什么是元素的空间?
外边距+边框+内边距+内容宽度/内容高度
做个练习把.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style type="text/css">
*{padding: 0px;margin: 0px;}
/*判断是否是内容宽高为100的盒子*/
.box1{
width: 100px;
height: 100px;
background-color: yellow;
}
/*判断是否是元素宽高为200的盒子*/
.box2{
/*25+25+150 = 200*/
width: 150px;
height: 150px;
border: 25px solid #000;
}
.box3{
width: 150px;
height: 150px;
padding:20px;
border: 5px solid #000;
background-color: blue;
}
/*判断是否是元素空间宽高为300的盒子*/
.box4{
/*
50+50+25+25+25+25+100
100 +50 +50 + 100
300
*/
width: 100px;
height: 100px;
padding: 25px;
border: 25px solid #000;
margin: 50px;
}
/*现有如下盒子模型, 要求增加padding属性为25之后仍然保持元素宽高为200
元素宽高 = 边框 + 内边距 + 内容宽高
= 0 + 0 + 200 = 200
= 0 + 25 + 25 + 200 = 250
= 0 + 25 + 25 + 150 = 200
规律:
1.增加了padding之后元素的宽高也会发生变化
2.如果增加了padding之后还想保持元素的宽高, 那么就必须减去内容的宽高
*/
.box5{
width: 150px;
height: 150px;
padding: 25px;
background-color: red;
}
/*现有如下盒子模型, 要求增加border属性为20之后仍然保持元素宽高为200
元素宽高 = 边框 + 内边距 + 内容宽高
= 0 + 0 + 200 = 200
= 0 + 20 + 20 + 200 = 240
= 0 + 20 + 20 + 160 = 200
规律:
1.增加了border之后元素的宽高也会发生变化
2.如果增加了border之后还想保持元素的宽高, 那么就必须减去内容的宽高
*/
.box6{
width: 160px;
height: 160px;
border: 20px solid #000;
background-color: deepskyblue;
}
</style>
</head>
<body>
<div class="box1">box1</div>
<div class="box2">box2</div>
<div class="box3">box3</div>
<hr>
<div class="box4">box4</div>
<div class="box5">box5</div>
<div class="box6">box6</div>
</body>
</html>
效果
第一个:
第二个:
第三个
第四个:
第五个·: