1. 程式人生 > >CSS3網頁定位技術(2)——相對定位

CSS3網頁定位技術(2)——相對定位

二:position: relative;——相對定位

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.demo{
				height: 100px;
				width: 100px;
				background-color: red;
				position: relative;
				left: 100px;
				top: 100px;
			}
		</style>
		<title></title>
	</head>
	<body>
		<div class="demo"></div>
		<div class="box"></div>
	</body>
</html>

跟剛才沒啥區別。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.demo{
				height: 100px;
				width: 100px;
				background-color: red;
				position: relative;
				opacity: 0.5;
			}
			.box{
				height: 150px;
				width: 150px;
				background-color: green;
			}
		</style>
		<title></title>
	</head>
	<body>
		<div class="demo"></div>
		<div class="box"></div>
	</body>
</html>

是這個樣子,我把position: relative;去掉,他還是這樣。

沒變化說明不是層了吧?

不是,現在試試,position: relative;left: 100px;top: 100px;

 

它變成了這樣,如果不是一個層的話,紅色的層下來之後他會把綠色的層頂開,但是現在他倆層疊在一起了。

那為什麼綠色方塊不上去了呢?

這是因為relation有一個特殊的地方,保留原來位置進行定位。

 

 

 

咱們再看relative相對於誰進行定位。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.demo1{
				height: 200px;
				width: 200px;
				background-color: orange;
				margin-left: 100px;
			}
			.demo2{
				margin-left: 100px;
				height: 100px;
				width: 100px;
				background-color: black;
			}
			.demo3{
				
				left: 50px;
				height: 50px;
				width: 50px;
				background-color: yellow;
			}
		</style>
		<title></title>
	</head>
	<body>
		<div class="demo1">
			<div class="demo2">
				<div class="demo3">
					
				</div>
			</div>
		</div>
	</body>
</html>

再給demo3加個相對定位position: relative;

 

相對於父級嗎,相對於祖父級嗎?

都不是,他是相當於原來他出生的位置進行定位的

所以當你把left: 50px;改成right: 50px;的時候,

就相當於原來的位置定位了

 

咱們在用的時候把relative作為參照物,用absolute進行定位。