第五章CSS盒模型

5.1盒模型的定义

盒模型是 CSS定位布局的核心内容,页面中所有的元素都是放进一个容器内的,这个容器可以看成是一个盒子。可以通过 CSS 来控制这些盒子的各种显示属性,把这些盒子进行定位,完成整个页面的布局。在掌握了盒子模型以及其中每个元素的用法后,才能拥有较完善的布局观。

Web页面上大部分的元素(特别是块状元素)都可以看作是一个盒子,W3C组织建议把所有网页上的对象都放在一个盒子(box)中,设计者可以通过创建定义来控制这个盒子的各种属性,这些对象包括段落、列表、标题、图片及层。
盒子的结构可以看作一个矩形框,包括边框(border)、外边距(margin)、内边距(padding),以及元素内容(content),元素会在指定的高度和宽度范围内在页面上显示出来。

一个页面由许多这样的盒子组成,这些盒子层层嵌套,互相影响,设计者在布局网页和定位 Web元素时要充分考虑到这些要素,才能更自如地摆弄这些盒子。

5.2 CSS元素的高度和宽度

当设计者布局一个网页时,网页最终的宽度和高度会超出预计的数值,这是因为盒模型的宽度或高度计算误差造成的。指定一个CSS元素的宽度和高度属性时,只是设置内容区域的宽度和高度。而浏览器实际大小的元素,还必须添加内边距、外边距和边框。而增加或减少内边距、外边距和边框,不会影响内容区域的尺寸,只会增加盒模型的总尺寸。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}/*全局声明*/
			div{
				width: 40px;
				height: 30px;
				border: 10px solid;
			}
		</style>
	</head>
	<body>
		<div></div>
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}/*全局声明*/
			img{
				width: 40px;
				height: 30px;
			}
			div{
				width: 40px;
				height: 30px;
				border: 10px solid;
				margin: 20px;
				
			}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>


5.2.1 盒模型的宽度

盒模型的宽度=左外边距(margin-left)+左边框(border-lef)+左内边距(padding-left)+内容宽度(width)+右内边距(padding-right)+右边框(border-night)+右外边距(margin-right)。


5.1.2 盒模型的高度

盒模型的高度=上外边距(margin-top)+上边框(border-top)+上内边距(padding-top)+内容高度(height)+下内边距(padding-bottom)+下边框(border-bottom)+下外边距(margin-bottom)。


5.3 边距设置和边框设置

mrgin-border-padding 模型是最常用的盒子布局形式。对于任何一个盒子,都可以分别通过设置四条边各自的外边距(margin)、边框(border)和内边距(padding),实现各种各样的排版效果,而且它们各自的四条边在多参数同时设置时,均按照上一右→下一左的顺序(顺时针)


5.3.1 外边距设置

外边距是指元素与元素之间的距离,外边距设置属性,可分别设置margin-top、margin~nght、margin-bottom、margin-left,也可以用 margin 属性一次性设置所有外边距。


5.3.1.1 上外边距

语法:margin-top:length|percent|auto

参数;lengt 包括长度值和长度单位,包括绝对单位和相对单位。pereent是基于父对复
的高度。auo 值为自动提取边距值,是默认值。


5.3.1.2 右外边距

语法:margin-right:lengthlpercentlauto

参数:同margin-top。

说明:同 margin-top。


5.3.1.3 下外边距

语法:margin-bottom:lengthlpercentlauto
参数:同 margin-top。
说明:同 margin-top。


5.3.1.4 左外边距

语法:margin-left:lengthlpercent l auto
参数:同 margin-top。
说明:同 margin-top。


5.3.1.5 外边距

语法:margin:lengthlpercentlauto
参数:length 包括长度值和长度单位,包括绝对单位和相对单位。percent是基于父对象的高度,左右外边距允许使用负数。auto 值为自动提取边距值,是默认值。

说明:设置对象四边的外边距,包括 margin-top(上外边距)、margin-right(右外边距)、margin-bottom 下外边距)、margin-lef(左外边距),外边距始终是透明的。


5.3.2 外边距的合并

通常,盒子与盒子之间的外边距相遇会互相影响,必须对 margin 属性深人了解,才能精确地控制盒子的位置。


5.3.2.1 行级元素外边距合并

行级元素的盒子相遇,盒子与盒子之间的距离等于两个盒子外边距的总和。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>示例5.5</title>
		<style type="text/css">
			*{
				margin : 50px ;
			}
			.hb1{
				background-color:yellow ;
				margin-right:20px ;
				padding:30px ;
			}
			.hb2{
				background-color :lightpink;
				margin-left : 30px ;
				padding:30px ;
			}
		</style>
	</head>
	<body>
		<span class="hb1">黄色 span</span><span class="hb2">粉红色 span</span>
	</body>
</html>


5.3.2.2 块级元素外边距合并

块级元素的盒子相遇,盒子与盒子之间的距离等于两盒子中外边距的较大者。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>示例5.6</title>
		<style type="text/css">
			*{
				margin: 50px;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值