CSS-定位模式

定位模式

首先我们先做个一个box嵌套2个box的模型

代码

<!DOCYTYPE html>
<html lang="en">
<html>
	<HEAD>
		<meta charset="utf-8">
		<title>test</title>
		<style type="text/css">
			.con{
				 400px;
				height: 400px;
				border: 1px solid #000;
				margin: 50px auto 0;
			}
			.box1,.box2{
				 300px;
				height: 100px;
				margin: 10px;
			}
			.box1{
				background-color: green;
			}
			.box2{
				background-color: red;
			}
		</style>
	</HEAD>
	<BODY>
		<div class="con">
			<div class="box1"></div>
			<div class="box2"></div>
		</div>

	</BODY>
</html>

我们可以使用css的position属性来设置元素的定位类型,postion的设置项如下:

相对定位

relative 生成相对定位元素,元素所占据的文档流的位置保留,元素本身相对自身原位置进行偏移。

			.box1{
				background-color: green;
				position: relative;
				left: 50px;
				top: 50px;
			}

效果

绝对定位

absolute 生成绝对定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。

			.box1{
				background-color: green;
				/*position: relative;
				left: 50px;
				top: 50px;*/
				position: absolute;
				left: 50px;
				top: 50px;
			}

效果

脱离了文档流的限制

对上一父级添加定位属性,绝对路径的参照点发生了改变

			.con{
				 400px;
				height: 400px;
				border: 1px solid #000;
				margin: 50px auto 0;
				position: relative;
			}

效果

fixd

fixed 生成固定定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位。

			.box1{
				background-color: green;
				position: fixed;
				left: 50px;
				top: 50px;
			}

效果

static

static 默认值,没有定位,元素出现在正常的文档流中,相当于取消定位属性或者不设置定位属性。

inherit

inherit 从父元素继承 position 属性的值。

定位的层级

<!DOCYTYPE html>
<html lang="en">
<html>
	<HEAD>
		<meta charset="utf-8">
		<title>test</title>
		<style type="text/css">
			.con{
				 400px;
				height: 400px;
				border: 1px solid #000;
				margin: 50px auto 0;
				position: relative;
			}
			.con div{
				 300px;
				height: 100px;
				margin: 10px;
				position: absolute;
			}
			.box1{
				background-color: green;
				left: 20px;
				top: 20px;

			}
			.box2{
				background-color: red;
				left: 40px;
				top: 40px;

			}
			.box3{
				background-color: pink;
				left: 60px;
				top: 60px;
			}
			.box4{
				background-color: black;
				left: 80px;
				top: 80px;
			}
		</style>
	</HEAD>
	<BODY>
		<div class="con">
			<div class="box1"></div>
			<div class="box2"></div>
			<div class="box3"></div>
			<div class="box4"></div>
		</div>

	</BODY>
</html>

搭建一个模型 层级是依次排序

修改层级

			.box1{
				background-color: green;
				left: 20px;
				top: 20px;
				z-index: 10;

			}
			.box2{
				background-color: red;
				left: 40px;
				top: 40px;
				z-index: 1

			}


z-index 属性越大排序越上(前)。默认0,依次排序

定位的应用

<html lang="en">
<html>
	<HEAD>
		<meta charset="utf-8">
		<title>test</title>
		<style type="text/css">
			.con{
				 100px;
				height: 100px;
				background-color: gold;
				margin: 50px auto 0;
				position: relative;
				border-radius: 14px;
			}
			.box{
				 28px;
				height: 28px;
				background-color: red;
				color: #fff;
				text-align: center;
				line-height: 28px;
				position: absolute;
				left: 86px;
				top: -14px;
				border-radius: 14px;
			}
		</style>
	</HEAD>
	<BODY>
		<div class="con">
			<div class="box">5</div>
		</div>

	</BODY>
</html>
原文地址:https://www.cnblogs.com/lzq70112/p/13151864.html