首页 > 其他分享 >第五章 CSS盒模型

第五章 CSS盒模型

时间:2024-10-11 11:20:14浏览次数:3  
标签:5.3 盒子 margin 模型 边框 width 第五章 border CSS

5.1盒模型的定义

Web页面上大部分的元素(特别是块状元素)都可以看作是一个盒子,W3C组织建议把所有网页上的对象都放在一个盒子中,设计者可以通过创建定义来控制这个盒子的各种属性,这些对象包括段落、列表、标题、图片以及层。

盒子的结构可以看作一个矩形框,包括边框、外边距、内边距,以及元素内容,元素会在指定的高度和宽度范围内在页面上显示出来他们之间的关系,如图

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

而网页元素的定位实际上就是这些大大小小的盒子在页面中的定位,,这些盒子在页面中是“浮动”的,当某个块状元素被CSS设置了浮动属性,这个盒子就会移动到上一块级元素所处的行中。要关注的是这些盒子在页面中如何摆放、如果嵌套的问题,而这么多盒子摆在一起,其中盒子尺寸计算、是否浮动等要素是最需要关注的。

默认情况下盒子的边框是“无”,背景色是透明的,所以在默认的情况下是看不到盒子的。内边距、边框和外边距这些属性都是可选的,默认值都是0。边框的作用就是在内边距和外边距之间创建一个隔离带,以免视觉上混淆。

5.2 CSS元素的高度和宽度

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

5.2.1 盒模型的宽度

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

5.2.2 盒模型的高度

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

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}
			img{
				width: 50px;
				height: 50px;
			}
			/* 第五章CSS盒模型 */
			/* 5.1盒模型的定义 */
			div{
				/* 5.2 CSS元素的高度和宽度 */
				/* 5.2.1 盒模型的宽度 */
				width: 50px;
				/* 5.1.2 盒模型的高度 */
				height: 50px;
				}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>

5.3 边距设置和边框设置

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

5.3.1 外边距设置

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

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}
			img{
				width: 50px;
				height: 50px;
			}
			/* 第五章CSS盒模型 */
			/* 5.1盒模型的定义 */
			div{
				/* 5.2 CSS元素的高度和宽度 */
				/* 5.2.1 盒模型的宽度 */
				width: 50px;
				/* 5.1.2 盒模型的高度 */
				height: 50px;
				/* 5.3.1 外边距设置 */
				margin: 30px;
				}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>

5.3.1.1 上外边距

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

参数:length 包括长度值和长度单位,包括绝对单位和相对单位。percent是基于父对象的高度。auto值为自动提取边距值,是默认值。
说明:设置对象上外边距,外边距始终透明。内联元素要使用该属性,必须先设定元素的 height属性或 width属性,或者设定 position 属性为 absolute。

5.3.1.2 右外边距

语法:margin-right:length | percent | auto
参数:同 margin-top。
说明:同margin-top。

5.3.1.3 下外边距

语法:margin-bottom:length | percent | auto
参数:同 margin-top。
说明:同 margin-top。

5.3.1.4 左外边距

语法:margin-left:length | percent | auto
参数:同 margin-top。
说明:同 margin-top。

5.3.1.5 外边距

语法:margin:length | percent | auto

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

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

如果只提供1个参数,将应用于全部的外边距。

如果提供2个参数,第1个参数应用于上、下外边距,第2个参数应用于左、右外边距。

如果提供3个参数,第1个参数应用于上外边距,第2个参数应用于左、右外边距,第3 个参数应用于下外边距。

5.3.2 外边距的合并

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

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}
			img{
				width: 50px;
				height: 50px;
			}
			/* 第五章CSS盒模型 */
			/* 5.1盒模型的定义 */
			div{
				/* 5.2 CSS元素的高度和宽度 */
				/* 5.2.1 盒模型的宽度 */
				width: 50px;
				/* 5.1.2 盒模型的高度 */
				height: 50px;
				/* 5.3.1 外边距设置 */
				margin: 30px;
				/* 5.3.2.2 块级元素外边距合并 */
				display: block;
				}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>

5.3.2.1 行级元素外边距合并

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

5.3.2.2 块级元素外边距合并

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

5.3.3 内边距设置

元素的内边距用来控制边框和内容区之间的空白距离,并非实体,用padding属性表示,类似于HTML中表格单元格的填充属性。内边距(padding)和外边距(margin)很似,都是透明不可见的,只是内边距和外边距之间还有边框。从语法和用法上来说,内边距的属性与外边距的属性也是类似的,既可以使用复合属性,也可以使用单边属性,padding属性接受length 值或 percent 值,区别于外边距,内边距不可以使用负值。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}
			img{
				width: 50px;
				height: 50px;
			}
			/* 第五章CSS盒模型 */
			/* 5.1盒模型的定义 */
			div{
				/* 5.2 CSS元素的高度和宽度 */
				/* 5.2.1 盒模型的宽度 */
				width: 50px;
				/* 5.1.2 盒模型的高度 */
				height: 50px;
				/* 5.3.1 外边距设置 */
				margin: 30px;
				/* 5.3.2.2 块级元素外边距合并 */
				display: block;
				/* 5.3.3 内边距设置 */
				padding: 30px;
				}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>

5.3.4 边框设置

元素外边距内就是元素的边框(border),它是围绕内边距和元素内容的一条或多条线在内边距和外边距之间。边框的四条边分别用border-top、border-right、border-botom、border-left 表示,它们的属性与内外边距的属性也是类似的,既可以使用复合属性,也可以使用单边属性。
边框作为盒模型的某个组成部分,边框的CSS样式设置将直接影响到盒子的尺寸和外观。而通过使用border属性,可以创建出更佳的边框效果,还可以应用于任何元素。bond属性设置通常有3种:样式(border-style)、宽度(border-width)和颜色(border-color)。

5.3.4.1上边框

语法:border-top:border-style | border-width | border-color

参数:该属性是复合属性。需要通过参数设置来实现。

5.3.4.2右边框

语法:border-right:border-style | border-width | border-color

参数:该属性是复合属性。需要通过参数设置来实现。

5.3.4.3下边框

语法:border-bottom:border-style | border-width | border-color

参数:该属性是复合属性。需要通过参数设置来实现。

5.3.4.4 左边框

语法:border-left:border-style | border-width | border-color

参数:该属性是复合属性。需要通过参数设置来实现。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}
			img{
				width: 50px;
				height: 50px;
			}
			/* 第五章CSS盒模型 */
			/* 5.1盒模型的定义 */
			div{
				/* 5.2 CSS元素的高度和宽度 */
				/* 5.2.1 盒模型的宽度 */
				width: 50px;
				/* 5.1.2 盒模型的高度 */
				height: 50px;
				/* 5.3.1 外边距设置 */
				margin: 30px;
				/* 5.3.2.2 块级元素外边距合并 */
				display: block;
				/* 5.3.3 内边距设置 */
				padding: 30px;
				/* 5.3.4.1上边框 */
				border-top: 10px #ff0000 solid;
				/* 5.3.4.2右边框 */
				border-right: thin #00ff00 dashed;
				/* 5.3.4.3下边框 */
				border-bottom: medium #0000ff dotted;
				/* 5.3.4.4 左边框 */
				border-left: thick #000000 double;
				}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>

5.3.4.5 边框样式

在CSS中,样式是边框最重要的一个设置,因为如果没有样式,在Web页面中边框就不会显示。
bonder-style是一个复合属性,可以同时取1~4个值,取值方法与外边距相似。边框属性有12个值可选,包括默认(initial)和无边框(none)。

5.3.4.6 边框宽度

在CSS中,宽度是通过border-width 属性来设置边框粗细的。与 border-style 属性相同,border-width 也是一个复合属性。设置边框宽度时,可以直接输人lengh 确定长度值,如5px或2cm,但不可以为负值;或者选择系统预设属性值。

5.3.4.7 边框颜色

在CSS中,边框颜色是通过border-color属性来设置的,该属性可以使用任何类型的颜色色值,包括用颜色命名的值、十六进制参数或RGB值。但是如果对象的border-style设置为none或border-width设置为0,本属性将失去作用。

5.3.5 新增边框属性

CSS3中对边框新增了几个属性,设计者可以通过这些属性创建圆角边框、添加边框阴影、使用图片来绘制边框等。

5.3.5.1圆角边框

border-radius:设置边框四个角有弧度成为圆角,需要设置相关参数。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}
			img{
				width: 50px;
				height: 50px;
			}
			/* 第五章CSS盒模型 */
			/* 5.1盒模型的定义 */
			div{
				/* 5.2 CSS元素的高度和宽度 */
				/* 5.2.1 盒模型的宽度 */
				width: 50px;
				/* 5.1.2 盒模型的高度 */
				height: 50px;
				/* 5.3.1 外边距设置 */
				margin: 30px;
				/* 5.3.2.2 块级元素外边距合并 */
				display: block;
				/* 5.3.3 内边距设置 */
				padding: 30px;
				/* 5.3.4.1上边框 */
				border-top: 10px #ff0000 solid;
				/* 5.3.4.2右边框 */
				border-right: thin #00ff00 dashed;
				/* 5.3.4.3下边框 */
				border-bottom: medium #0000ff dotted;
				/* 5.3.4.4 左边框 */
				border-left: thick #000000 double;
				/* 5.3.5.1圆角边框 */
				border-radius: 20px;
				}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>

5.3.5.2阴影边框

box-shadow:向四个边框添加一到多个阴影,需要设置相关参数。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
			}
			img{
				width: 50px;
				height: 50px;
			}
			/* 第五章CSS盒模型 */
			/* 5.1盒模型的定义 */
			div{
				/* 5.2 CSS元素的高度和宽度 */
				/* 5.2.1 盒模型的宽度 */
				width: 50px;
				/* 5.1.2 盒模型的高度 */
				height: 50px;
				/* 5.3.1 外边距设置 */
				margin: 30px;
				/* 5.3.2.2 块级元素外边距合并 */
				display: block;
				/* 5.3.3 内边距设置 */
				padding: 30px;
				/* 5.3.4.1上边框 */
				border-top: 10px #ff0000 solid;
				/* 5.3.4.2右边框 */
				border-right: thin #00ff00 dashed;
				/* 5.3.4.3下边框 */
				border-bottom: medium #0000ff dotted;
				/* 5.3.4.4 左边框 */
				border-left: thick #000000 double;
				/* 5.3.5.1圆角边框 */
				border-radius: 20px;
				/* 5.3.5.2阴影边框 右偏移量 下偏移量 阴影宽度 阴影颜色 */
				box-shadow: -10px 10px 30px #00ffff;
				}
		</style>
	</head>
	<body>
		<div><img src="img/photo.jpg"/></div>
		<div><img src="img/photo.jpg"/></div>
	</body>
</html>

5.3.5.3图片绘制边框

border-image:设置所有边框用图片显示,需要嵌入相关图片,但是部分浏览器不支持此属性。

5.4 CSS元素的定位

前面所讲的盒模型都是标准流情况下可用的,但是盒模型仅有的几种排版对布局有很大的限制,导致元素无法在页面中随意地摆放,因此,我们需要使用盒子的定位(position)来增加排版的灵活性和适应性。
定位(position)的思想是,它允许你定义元素框相对于其正常位置应该出现的位置或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。
position 属性值有4个。语法:position:static | relative | absolute | fixed
参数:static 是默认值,默认没有定位,或者用于取消特殊定位的继承,恢复默认,又称静态定位。relatve是相对定位,生成相对定位的元素,相对于其正常位置进行定位。solute 是绝对定位,相对于父元素或者浏览器窗口进行定位,需要top、right、botom和left属性辅助完成。fixed是固定定位,相对于浏览器窗口进行定位,需要top、right、botom和left属性辅助完成。

5.4.1 static 定位

static 是 HTML 元素的默认值,不受 top、right、bottom 和left 属性影响,元素出现在正常的文档流中。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>CSS盒模型</title>
		<style type="text/css">
			.father{
				border: 2px solid red;
				width: 300px;
				height: 250px;
			}
			.sno1{
				border: 2px double red;
				background-color: yellow;
				width: 200px;
				height: 80px;
			}
			.sno2{
				border: 2px double red;
				width: 200px;
				margin-top: 50px;
			}
		</style>
	</head>
	<body>
		<div class="father">父盒子:无定位
		<div class="sno1">子盒子 1:无定位的盒子
		<h2>静态定位的盒子</h2>
		</div>
		<div class="sno2">子盒子 2:无定位的盒子
		</div>
		</div>
	</body>
</html>

5.4.2 relative定位

relative 不脱离文档流的布局,需要参照父元素的四条边(不是浏览器),设置自身的top、right、bottom 和left 属性的参数,从盒子中独立出来浮在上面。相对定位只改变自身的位置,在文档流原先的位置留出空白区域。定位的起始位置为此元素原先在文档流的位置。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>CSS盒模型</title>
		<style type="text/css">
			.father{
				border: 2px solid red;
				width: 300px;
				height: 250px;
			}
			.sno1{
				border: 2px double red;
				background-color: yellow;
				width: 200px;
				height: 80px;
				position: relative;
				top: 30px;
				left: 40px;
			}
			.sno2{
				border: 2px double red;
				width: 200px;
				margin-top: 50px;
			}
		</style>
	</head>
	<body>
		<div class="father">父盒子:无定位
		<div class="sno1">子盒子 1:无定位的盒子
		<h2>静态定位的盒子</h2>
		</div>
		<div class="sno2">子盒子 2:无定位的盒子
		</div>
		</div>
	</body>
</html>

5.4.3 absolute定位

absolute脱离原来文档流的布局,浮在其他盒子上面,独立出来。子盒子原来位置的空间由后面的盒子填充。绝对定位的起始位置为最近已定位的父盒子,如果父盒子没有定位,那么子盒子的起始位置为浏览器,并随着滚动条的移动而改变位置。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>CSS盒模型</title>
		<style type="text/css">
			.father{
				border: 2px solid red;
				width: 300px;
				height: 250px;
			}
			.sno1{
				border: 2px double red;
				background-color: yellow;
				width: 200px;
				height: 80px;
				position: absolute;
				top: 30px;
				left: 40px;
			}
			.sno2{
				border: 2px double red;
				width: 200px;
				margin-top: 50px;
			}
		</style>
	</head>
	<body>
		<div class="father">父盒子:无定位
		<div class="sno1">子盒子 1:无定位的盒子
		</div>
		<div class="sno2">子盒子 2:无定位的盒子
		</div>
		</div>
	</body>
</html>

5.4.3.1 相对浏览器绝对定位

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>CSS盒模型</title>
		<style type="text/css">
			.father{
				border: 2px solid red;
				width: 300px;
				height: 250px;
			}
			.sno1{
				border: 2px double red;
				background-color: yellow;
				width: 200px;
				height: 80px;
				position: absolute;
				bottom: 30px;
				right: 40px;
			}
			.sno2{
				border: 2px double red;
				width: 200px;
				margin-top: 50px;
			}
		</style>
	</head>
	<body>
		<div class="father">父盒子:无定位
		<div class="sno1">子盒子 1:无定位的盒子
		</div>
		<div class="sno2">子盒子 2:无定位的盒子
		</div>
		</div>
	</body>
</html>

5.4.3.2 相对父盒子绝对定位

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>CSS盒模型</title>
		<style type="text/css">
			.father{
				border: 2px solid red;
				width: 300px;
				height: 250px;
				position: relative;
			}
			.sno1{
				border: 2px double red;
				background-color: yellow;
				width: 200px;
				height: 80px;
				position: absolute;
				bottom: 30px;
				right: 40px;
			}
			.sno2{
				border: 2px double red;
				width: 200px;
				margin-top: 50px;
			}
		</style>
	</head>
	<body>
		<div class="father">父盒子:无定位
		<div class="sno1">子盒子 1:无定位的盒子
		</div>
		<div class="sno2">子盒子 2:无定位的盒子
		</div>
		</div>
	</body>
</html>

5.4.4 fixed定位

fixed类似于absolute,但在固定定位中,盒子的位置不随着滚动进度条的移动而改变位置。相对于浏览器窗口是固定不变的。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>CSS盒模型</title>
		<style type="text/css">
			.father{
				border: 2px solid red;
				width: 300px;
				height: 250px;
				position: relative;
			}
			.sno1{
				border: 2px double red;
				background-color: yellow;
				width: 200px;
				height: 80px;
				position: fixed;
				bottom: 30px;
				right: 40px;
			}
			.sno2{
				border: 2px double red;
				width: 200px;
				margin-top: 50px;
			}
		</style>
	</head>
	<body>
		<div class="father">父盒子:无定位
		<div class="sno1">子盒子 1:无定位的盒子
		</div>
		<div class="sno2">子盒子 2:无定位的盒子
		</div>
		</div>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
	</body>
</html>

5.5 CSS元素的浮动

在CSS的盒模型布局上,除了使用定位避免按照标准流的方式进行排版的限制性问题,还可以使用浮动来避免。而使用浮动(float)和清除(clear)属性设置,可以解决各种页面错位的现象。

5.5.1 盒子的浮动添加

一般情况下,页面中的块状元素在水平方向上宽度会自动延伸,直到父元素的边界;而在垂直方向上会按照元素在页面中出现的先后次序依次排列,即所说的标准流排列。

任何元素都可以浮动,浮动元素会变成一个块状元素,元素的水平浮动就是通过其oal属性的设置,使元素向其父元素的左侧或右侧靠拢,间接设置一个元素的文本环绕方式,从而政变原来的竖直排列方式。此时元素的宽度不再延伸,大小将由其内容的宽度而定。

语法:float:left | right | none

参数:left元素浮动到左边,即向左侧靠拢,则右边可以有文字环绕;right元素浮动到右边,即向右侧靠拢,左边可以有文字环绕;默认值none就是标准流通常的显示状态。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>例题5.17</title>
		<style type="text/css">
			.father{
				background-color: #FFCCFF;
				border: 2px solid red;
				padding: 5px;
			}
			.father div{
				width: 100px;
				height: 20px;
				padding: 10px;
				margin: 10px;
				border: 2px dashed blue;
				background-color: #CCFFFF;
			}
			.father p{
				border: 2px dotted green;
				background-color: #FFFF99;
			}
		</style>
	</head>
	<body>
		<div class="father">
			<h2>父盒子</h2>
			<div style="float: right;">右浮动盒子 1</div>
			<div>标准流盒子2</div>
			<div>标准流盒子3</div>
			<p>css中,有一个float属性,默认为none,也就是标准流通常的情况。若果将float属性的值设置为left或right,元素就会向其父级元素的左侧或右侧靠近,同时默认的情况下,盒子的宽度不再延申,而是根据盒子里面的内容的宽度确定</p>
		</div>
	</body>
</html>

5.5.2 盒子的浮动清除

元素浮动后,下面的元素内容会自动上移,结果就会受到上面浮动元素的影响,如果想要清除这种影响,需要使用clear 属性完成。由于浮动元素可以清除,是相对定位属性的优势,因而浮动属性成为控制分栏布局的最好工具。
语法:clear:left | right | both | none
参数:left清除左边浮动元素,即不允许左边有浮动对象;right清除右边浮动元素,即不允许右边有浮动对象;Both同时清除左右两边的浮动元素,即不允许左右两边有浮动对象:默认值 none。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>例题5.17</title>
		<style type="text/css">
			.father{
				background-color: #FFCCFF;
				border: 2px solid red;
				padding: 5px;
			}
			.father div{
				width: 100px;
				height: 20px;
				padding: 10px;
				margin: 10px;
				border: 2px dashed blue;
				background-color: #CCFFFF;
			}
			.father p{
				border: 2px dotted green;
				background-color: #FFFF99;
			}
		</style>
	</head>
	<body>
		<div class="father">
			<h2>父盒子</h2>
			<div style="float: right;">盒子1</div>
			<div style="float: right;">盒子2</div>
			<div style="float: right;">盒子3</div>
			<p style="clear: both;">css中,有一个float属性,默认为none,也就是标准流通常的情况。若果将float属性的值设置为left或right,元素就会向其父级元素的左侧或右侧靠近,同时默认的情况下,盒子的宽度不再延申,而是根据盒子里面的内容的宽度确定</p>
		</div>
	</body>
</html>

5.6 综合案例——昵心美食空间

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>昵心美食空间</title>
		<style type="text/css">
			*{
				background-color: #FFFF99;
			}
			a{
				color: red;
			}
			.all{
				width: 700px;
				height: 650px;
				margin: 10px auto;
				padding: 5px;
				background-image: url(img/bg1.JPG);
			}
			.banner{
				width: 700px;
				height: 70px;
			}
			.menu{
				width: 690px;
				height: 40px;
				padding: 5px;
			}
			.main{
				width: 700px;
				height: 450px;
				margin: 5px 0px;
				position: relative;
			}
			.left,.right{
				width: 150px;
				height: 440px;
				border: 1px solid #999;
				float: left;
			}
			.middle{
				width: 384px;
				height: 450px;
				margin: 0px 5px;
				float: left;
				font-size: 20px;
				font-family: "楷体";
				font-weight: 700;
				color: #0000FF;
			}
			.one{
				width: 380px;
				height: 155px;
				border: 1px solid #999;
			}
			.two{
				width: 255px;
				height: 100px;
				border: 5px double red;
				margin-top: 20px;
				margin-bottom: 20px;
				border-radius: 25px;
			}
			.three{
				width: 380px;
				height: 135px;
				border: 1px solid #999;
			}
			.bottom{
				width: 700px;
				height: 70px;
			}
		</style>
	</head>
	<body>
		<div class="all">
			<div class="banner">
				<img src="img/banner.jpg" width="700px" height="70px"/>
			</div>
			<div class="menu">
				<img src="img/menu.jpg" width="690px" height="40px"/>
			</div>
			<div class="main">
				<div class="left">
					<marquee direction="up">
						<img src="img/mm_1.jpg" width="150px" height="140px"/>
						<img src="img/mm_2.jpg" width="150px" height="140px"/>
						<img src="img/mm_3.jpg" width="150px" height="140px"/>
					</marquee>
				</div>
				<div class="middle">
					<div class="one">
						<img src="img/font.jpg" width="25px" height="25px"/>为您推荐
						<br><br>
						<img src="img/x_1.jpg" width="80px" height="40px"/>
						<img src="img/x_2.jpg" width="80px" height="40px"/>
						<img src="img/x_3.jpg" width="80px" height="40px"/>
						<img src="img/x_4.jpg" width="80px" height="40px"/>
						<img src="img/x_5.jpg" width="80px" height="40px"/>
						<img src="img/x_6.jpg" width="80px" height="40px"/>
					</div>
					<center>
						<div class="two">
							<h1>昵心美食空间</h1>
						</div>
					</center>
					<div class="three">
						<img src="img/font.jpg" width="25px" height="25px"/>团购信息
						<br>
						<a href="#">1.火锅团购</a><br/>
						<a href="#">2.烧烤团购</a><br/>
						<a href="#">3.自助餐团购</a><br/>
						<a href="#">4.新春特惠</a>
					</div>
				</div>
				<div class="right">
					<marquee direction="up">
						<img src="img/good_1.jpg" width="150px" height="140px"/>
						<img src="img/good_2.jpg" width="148px" height="140px"/>
						<img src="img/good_3.jpg" width="148px" height="140px"/>
					</marquee>
				</div>
			</div>
			<div class="bottom">
				<hr color="#0000FF">
				<center style="font-family: '楷体'";>版权所有&copy;昵心美食空间<br />
				地址:江门市大学路XXX号 邮编:500000 电话:0750-9999999</center>
			</div>
		</div>
	</body>
</html>


标签:5.3,盒子,margin,模型,边框,width,第五章,border,CSS
From: https://blog.csdn.net/xbc811223/article/details/142723996

相关文章

  • CSS篇二:其他选择器与权重/范围
    一、其他选择器简单聊聊:篇一提到的三种基础选择器其实并不能完全覆盖商业项目的开发场景,所以其他类型选择器的使用频率也非常高,所以还是建议记住,避免某一场景下为难。1、通配选择器简述:使用较少,优缺点都很明显,优→统一设置;缺→样式覆盖,降低代码执行效率。推荐度:一星2、组......
  • Dbt增量策略模型实践指南
    参考:dbtIncrementalStrategies|IndiciumEngineering(medium.com)本文讨论dbt的增量策略,介绍工作原理、以及各自优缺点。下篇讲解如何在模型中实现增量策略。使用增量模型可以仅仅处理最近的数据,减少数据处理成本和时间。当然首先要明确我们真的需要使用增量策略吗?......
  • 35个数据分析模型
    这些数据分析模型覆盖了战略规划、市场营销、运营管理、用户行为、财务分析等多个方面,是企业和组织在进行决策分析时常用的工具。分享给大家,如果想要PDF下载:https://edu.cda.cn/group/4/thread/1787821、SWOT模型SWOT模型是一种战略分析工具,通过对企业内部环境的优势(Str......
  • 前端大模型入门:Langchain的不同文本分割器对比和效果展示-教你根据场景选出最合适的方
    在前端开发大模型应用的时候,处理和分割文本是常见需求,毕竟现在的大模型输入输出都有限-嵌入等也是有token限制的,合理的文本分割能显著提高模型的表现。Langchain提供了多种文本分割方式,本文将对比五种文本分割器:CharacterTextSplitter、RecursiveCharacterTextSplitter、Tok......
  • CSS选择器(速通版!!)
    目录1.网页中引用CSS的方法1.1行内式1.2 内嵌式1.3 外链式2基本选择器2.1类选择器2.2id选择器2.3 标签选择器 3复合选择器3.1交集选择器3.2并集选择器4.关系选择器4.1后代选择器4.2子代选择器4.3相邻兄弟选择器4.4通用兄弟选择器前言上一期我......
  • 机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+
    时间序列在回归预测的领域的重要性,不言而喻,在数学建模中使用及其频繁,但是你真的了解ARIMA、AR、MA么?ACF图你会看么??时间序列数据如何构造???,我打过不少数学建模,但是都没有弄得很清楚;这篇将详细讲解了基础模型—AR的原理.文章目录1、自回归(AR)详解1、简要说明2、原理讲解......
  • tensorflow快速入门--如何定义张量、定义网络结构、超参数设置、模型训练???
    前言由于最近学习的东西涉及到tensorflow的使用,故先简单的学习了一下tensorflow中如何定义张量、定义网络结构、超参数设置、模型训练的API调用过程;欢迎大家,收藏+关注,本人将持续更新。文章目录1、基本操作1、张量基础操作创建0维度张量创建1维张量创建多维张量2、转换......
  • CSS——表格、表单、链接和导航菜单
    一、设置表格样式CSS中有许多表格属性可以用来设置表格的样式,以下是一些常用的表格属性:border-collapse:设置表格的边框合并规则。可以设置为collapse来合并边框,或设置为separate来分隔边框(默认值为separate)。border:设置表格的边框样式、宽度和颜色。例如:border:1pxsoli......
  • 递归特征消除(RFE)与随机森林回归模型的 MATLAB 实现
    在机器学习中,特征选择是提高模型性能的重要步骤。本文将详细探讨使用递归特征消除(RFE)结合随机森林回归模型的实现,以研究对股票收盘价影响的特征。我们将逐步分析代码并介绍相关的数学原理。1.数据准备首先,我们清空工作区并加载数据,假设最后一列是股票的收盘价,前面的列是特征......
  • 鸿蒙初学001-构建第一个ArkTS应用(Stage模型)
    https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-guide-V5HarmonyOSSDK介绍:从HarmonyOSNEXTDeveloperPreview1(API11)版本开始,HarmonyOSSDK以Kit维度提供丰富、完备的开放能力,涵盖应用框架、系统、媒体、图形、应用服务、AI六大领域,例如......