1.盒模型基本概念
我们可以好好看一下这张图;
盒模型:相框边框 - > border ;画和相框边框的距离(内边距) -> padding;相框之间的距离(外边距) -> margin
2.边框
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css"> #d1{ width:100px; height:100px; /* 边框宽度(粗细) */ border-width: 10px; /* 边框颜色 */ border-color: red; /* 边框样式 */ border-style:solid; } #d2{ width:100px; height:100px; border:10px blue dashed; } #d3{ width:100px; height:100px; border-top:5px blue dashed; border-right:5px red solid; border-bottom:5px blue dashed; border-left:5px red dotted; }</style></head><body><div id="d1">内容1</div><div id="d2">内容2</div><div id="d3">内容3</div></body></html>
复制代码
运行结果:
3.内边距
用 padding 设置内边距;
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css"> #d1{ width:100px; height:100px; /* 边框宽度(粗细) */ border-width: 10px; /* 边框颜色 */ border-color: red; /* 边框样式 */ border-style:solid; /* 设置内边距 */ padding:40px; } #d2{ width:100px; height:100px; border:10px blue dashed; /* 按照上、右、下、左的顺序设置 */ padding:20px 10px 5px 2px; } #d3{ width:100px; height:100px; /* 设置边框样式 */ border-top:5px blue dashed; border-right:5px red solid; border-bottom:5px blue dashed; border-left:5px red dotted; /* 设置内边距 */ padding-top:20px; padding-right:10px; padding-bottom:5px; padding-left:2px; }</style></head><body><div id="d1">内容1</div><div id="d2">内容2</div><div id="d3">内容3</div></body></html>
复制代码
运行结果:
这里我们可以点击页面,查看检查:
我们这边可以看到具体的盒子模型,各种数据都能看到,非常方便!
4.外边距
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style type="text/css"> #d1{ width:100px; height:100px; /* 边框宽度(粗细) */ border-width: 10px; /* 边框颜色 */ border-color: red; /* 边框样式 */ border-style:solid; /* 设置内边距 */ padding:40px; /* 设置外边距 */ margin:20px; } #d2{ width:100px; height:100px; border:10px blue dashed; /* 按照上、右、下、左的顺序设置 */ padding:20px 10px 5px 2px; /* 按照上、右、下、左的顺序设置 */ margin:20px 10px 5px 2px; } #d3{ width:100px; height:100px; /* 设置边框样式 */ border-top:5px blue dashed; border-right:5px red solid; border-bottom:5px blue dashed; border-left:5px red dotted; /* 设置内边距 */ padding-top:20px; padding-right:10px; padding-bottom:5px; padding-left:2px; /* 设置外边距 */ margin-top:20px; margin-right:10px; margin-bottom:5px; margin-left:2px; }</style></head><body><div id="d1">内容1</div><div id="d2">内容2</div><div id="d3">内容3</div></body></html>
复制代码
运行结果:
5.网页布局与盒模型
1.标准文档流;
标准文档流:指在不使用其他与排列和定位相关的特殊 CSS 规则时,各种元素的排列规则;即不同的浏览器解析 CSS 样式的规则基本上是按照标准文档流来解析的;
2.块级元素 VS 行内元素;
块级元素:以一个块的形式展现,跟同级的兄弟块依次竖直排列,左右撑满,比如<div>;
行内元素:以普通的一个 DOM 节点展现,跟同级的兄弟元素横向排列,排满后,自动换行,比如<span>;
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><h1>块内元素</h1><div>块1</div><div>块2</div><div>块3</div><h1>行级元素</h1><span>行1</span><span>行2</span><span>行3</span></body></html>
复制代码
运行结果:
6.盒子在标准流中的定位
1.行内元素之间的水平 margin;
距离为:(margin-right)+(margin-left);
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><!-- 行1的右边的margin为10px --><span style="margin-right: 10px">行1</span><!-- 行2的左边的margin为10px --><span style="margin-left: 10px">行2</span></body></html>
复制代码
运行结果:
2.块级元素之间的竖直 margin;
距离为:margin-bottom 与 margin-top 之间的较大者!
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><!-- 块1的下边的margin为10px --><div style="margin-bottom: 10px">块1</div><!-- 块2的上边的margin为5px --><div style="margin-top: 5px">块2</div></body></html>
复制代码
运行结果:
注意:这个上下之间的距离是 margin-bottom 与 margin-top 之间的较大者,并不是相加!
3.嵌套盒子之间的 margin;
子块的 margin 将以父块的内容为参考!
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><!-- 块1的周围的margin为10px --><div style="margin: 10px">块1<!-- 块2的上边的margin为20px --><div style="margin-top: 20px">块2</div></div></body></html>
复制代码
这里我们用两个 div 块嵌套,其中块 1 为父块,块 2 为子块;
这里块 1 和块 2 作为一个整体,上下左右的 margin 均为 10px;而块 1 与块 2 之间的上下距离又为 20px; 并不能超过界线!
所以说子块的 margin 将以父块的内容为参考!
运行结果:
4.margin 的属性可以设置成负值;
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><!-- 块1的周围的margin为10px --><span style="margin: 10px">块1</span><!-- 块2的周围的margin为-30px,这样会导致块2向左偏移,从而导致重叠--><span style="margin: -30px">块2</span></body></html>
复制代码
这样设置成负值会导致块 2 向块 1 偏移,从而会出现重叠现象;
运行结果:
我是【程序员的时光】,热爱技术分享,信仰终身学习,爱健身,会点厨艺的热血青年,我们下期再见!
评论