CSS--文档流和定位

Posted 肖帆咪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS--文档流和定位相关的知识,希望对你有一定的参考价值。

文档流

文档中标签在排列时所占的位置,在每行中按从左至右的顺序排放标签,即为文档流。

改变排放顺序的两种办法

1·浮动float

2·css定位

浮动

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
            /*
            	float:none,left,right
            */
            /*
            	浮动带来的问题:浮动后的标签没有撑开标签
            	会影响后面的网页布局
           		俗称:高度塌陷
            	解决方法:
            	1.给父标签设置具体的高度
          		2.清除浮动,会默认将父标签撑开与浮动标签相应的高度
           		在浮动标签后新建一个空白的标签,清除以上左浮动标签
            	style="clear: left;"
            */
            .nvg_Dao{
				background-color: #8A2BE2;
				float: left;
				width: 90px;
				padding: 20px;
			}
            #nvg{
				width: 1000px;
				margin: 0px auto;
			}	
		</style>
	</head>
	<body>
		<div id="nvg">
			<div class="nvg_Dao">导航1</div>
			<div class="nvg_Dao">导航2</div>
			<div class="nvg_Dao">导航3</div>
			<div class="nvg_Dao">导航4</div>
			<div class="nvg_Dao">导航5</div>
			<div class="nvg_Dao">导航6</div>
			<div class="nvg_Dao">导航7</div>
			<div style="clear: left;"></div>
		</div>
	</body>
</html>

定位

1.相对定位

position:relative激活相对定位

left right top bottom 设置标签的偏移量

特点:

没有设置位移量,标签没有任何变化

相对定位是相对于自己原来的位置进行定位

开启相对定位会使标签提升一个层次,但不会改变标签的性质

没有脱离文档流,位置还占用

<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#circle1{
				 background-color: #00FFFF;
				 width: 300px;
				 height: 300px;
                /*
                开启相对定位,距原来的位置顶部50px,距左边50px
                */
				 position: relative;
				 top:50px;
				 left: 50px;
			}
			#circle2{
				background-color: #FF0000;
				width: 300px;
				height: 300px;
			}
		</style>
	</head>
	<body>
		
		<div id="circle1">
			方块1
		</div>
		<div id="circle2">
			方块2
		</div>
	</body>

2.绝对定位

position:absolute开启绝对定位

left right top bottom四个属性来设置标签的偏移量

特点:

​ 1.不占空间

​ 2.会脱离文档流,浮动起来,可能会与其他标签重叠

​ 3.绝对定位是以离他最近的祖先标签进行定位(开启子标签的绝对定位都会开启父标签的 相对定位)

​ 4.如果所有祖先标签都没有开启定位,那么它会以浏览器窗口进行定位

​ 5.绝对定位会改变标签的性质,行级标签会变成块级标签

<head>
	<meta charset="utf-8">
	<title></title>
	<style type="text/css">
		*{
			padding: 0px;
			margin: 0px;
		}
		/*
			默认情况下,在两个标签都开启绝对定位后
			写在后面的标签会在前面标签的上层
			z-index;number
			定义标签的层数,数值越高,标签会在最上层
		*/
		#circle1{
			width: 300px;
			height: 300px;
			background-color: #00FFFF;
			position: absolute;
			z-index: 2;
		}
		#circle2{
			width: 300px;
			height: 300px;
			background-color: #FF8C00;
			position: absolute;
		}
	</style>
</head>
<body>
	<div id="circle1">
		方块1
	</div>
	<div id="circle2">
		方块2
	</div>
</body>

固定定位

position:fixed

left right top bottom四个属性来设置标签的偏移量

使标签悬浮起来,固定不动
<head>
	<meta charset="utf-8">
	<title></title>
	<style type="text/css">
		.Page{
			width: 1500px;
			height: 3000px;
			background-color: aqua;
		}
		.Page2{
			width: 1000px;
			height: 200px;
			background-color: #FF0000;
			text-align: center;font-size: 30px;
		}
	</style>
</head>
<body>
   		 <!-- 超链接跳转到指定的锚点  -->
		<a name="top"></a>
		<div style="position: fixed; top: 0px; height: 50px;" class="Page2">
			网页导航
		</div>
		<div class="Page">网页</div>
		<a href="#top" style="position: fixed; right: 20px; bottom: 20px;">返回顶部</a> 
</body>

总结

float:none,left,right	浮动
style="clear: left;" 清除浮动
position:relative 开启相对定位
position:absolute 开启绝对定位
position:fixed  固定定位
z-index:number 定义标签的层数,数值越高,标签会在最上层

以上是关于CSS--文档流和定位的主要内容,如果未能解决你的问题,请参考以下文章

CSS代码片段

CSS代码片段

css常用代码片段 (更新中)

常规流和脱离文档流

文本流、文档流

夯实基础--CSS=> 定位(position)