清除浮动和定位

清除浮动

clear属性可以用于清除元素周围的浮动对元素的影响。
也就是元素不会因为上方出现了浮动元素而改变位置。
可选值:
left:忽略左侧浮动
right:忽略右侧浮动
both:忽略全部浮动
none:不忽略浮动,默认值

方法一:

.clearfix:after{
	content:" ";
	display: block;
	clear: both;
	}
	.clearfix{
		zoom: 1;
	}
</head>
<body>
	<div class="box1 clearfix"><div>
	</div>
	...

方法二:

.box{
	border: 10px red solid;
	overflow; hidden;
	zoom;1;
}
</head>
<body>
	<div class="box1"></div>
		<div class="clear"></div>
	</div>
	...

方法三:

直接使用clear:both

定位

position属性可以控制Web浏览器如何以 及在何处显示特定的元素。
可以使用position属性把一个元素放置到网 页中的任何位置。
可选值:
static
relative
absolute
fixed

定位代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>相对定位</title>
	<style type="text/css">
		.box1{
			height: 200px;
			background-color: red;
			position: relative;
		}
		.box2{
			width: 200px;
			height: 200px;
			background-color: yellow;
			/*
			定位:
				- 定位指的就是将指定的元素摆放到页面的任意位置
					通过定位可以任意的摆放元素
				- 通过position属性来设置元素的定位
				-可选值:
					static:默认值,元素没有开启定位
					relative:开启元素的相对定位
					absolute:开启元素的绝对定位
				 	fixed:开启元素的固定定位(也是绝对定位的一种)
			*/
			/*
			当元素的position属性设置为relative时,则开启了元素的相对定位
				1.当开启了元素的相对定位以后,而不设置偏移量时,元素不会发生任何变化
				2.相对定位是相对于元素在文档流中原来的位置进行定位
				3.相对定位的元素不会脱离文档流
				4.相对定位会使元素提升一个层级
				5.相对定位不会改变元素的性质,块还是块,内联还是内联
			*/
			position: relative;
			/*
			当开启了元素的定位(position属性值是一个非static的值)时,可以通过left right top bottom四个属性来设置元素的偏移量
				left:元素相对于其定位位置的左侧偏移量
				right:元素相对于其定位位置的右侧偏移量
				top:元素相对于其定位位置的上边的偏移量
				bottom:元素相对于其定位位置下边的偏移量
			通常偏移量只需要使用两个就可以对一个元素进行定位,
			一般选择水平方向的一个偏移量和垂直方向的偏移量来为一个元素进行定位
			*/
			left: 100px;
			top: 200px;
		}
		.box3{
			width: 200px;
			height: 200px;
			background-color: yellowgreen;
		}

		.s1{
			position: relative;
			width: 200px;
			height: 200px;
			background-color: yellow;
		}
	</style>
</head>
<body>
	<div class="box1"></div>
	<div class="box2"></div>
	<div class="box3"></div>

	<span class="s1">我是一个span</span>
</body>
</html>


### CSS3 中浮动定位的概念及其区别 #### 浮动 (Float) 浮动是一种用于布局的技术,允许元素沿指定方向移动直到碰到包含框或另一个浮动元素为止。设置了 `float` 的块级元素会脱离文档的标准流,不再占据原来的空间。 例如,在给定的 HTML 结构中: ```html <style> .a { float: left; width: 50px; height: 50px; background-color: red; } .b { height: 100px; width: 100px; background-color: blue; } </style> <body> <div class="a"></div> <div class="b"></div> </body> ``` 这里 `.a` 被设置为左浮动,这意味着它将尽可能靠近左边并向上对齐页面顶部[^1]。由于`.a` 已经漂浮出去了,所以 `.b` 将填充由 `.a` 空出来的空间,除非采取措施阻止这种情况发生。 为了防止后续内容环绕在浮动对象周围或者被推挤变形,可以通过应用 `clear` 属性来解决这个问题: ```css .outside.clear::after { content: ""; display: table; clear: both; } ``` 这段代码创建了一个伪元素作为清除器,确保任何跟随的内容都不会受到前面浮动的影响[^2]。 #### 定位(Positioning) 相对于浮动而言,定位提供了更灵活的方式来控制元素的确切位置。通过改变 `position` 属性值,可以实现不同的定位效果: - **Static**: 默认情况下所有元素都是静态定位,即按照正常文档流排列,不考虑其他定位方式。 - **Relative**: 相对于自身原本所在的位置偏移一定距离而不影响其它兄弟节点;即使指定了上下左右偏移量也不会脱离标准流。 - **Absolute**: 绝对定位使元素完全跳出当前文档流,并依据最近已定位祖先元素进行绝对坐标计算(如果没有找到这样的父元素,则基于初始包含块——通常是视窗)。 - **Fixed**: 类似于绝对定位但是固定相对于浏览器窗口而不是某个特定容器。 - **Sticky**: 这种类型的定位结合了相对固定的特性,当滚动条到达设定阈值时变为固定状态[^3]。 下面是一个简单的例子展示如何利用 `relative` `absolute` 来调整两个 div 的位置关系: ```html <style type="text/css"> #first { width: 200px; height: 100px; border: 1px solid red; position: relative; top: 20px; left: 20px; } #second { width: 200px; height: 100px; border: 1px solid blue; position: absolute; top: 40px; left: 60px; } </style> ``` 在这个案例里,`#first` 是相对于自己原始位置向下向右各移动了 20 像素,而 `#second` 则是从它的最接近已经过定位的父亲那里获取起始点再做相应偏移[^4]。 综上所述,虽然两者都能用来构建网页布局,但它们的工作机制完全不同:浮动主要用于让文本或其他内联内容围绕着某些区域流动,而定位则是精确地放置单个组件在整个页面中的确切地点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值