CSS的position定位及區別

position 常用屬性:

 

【1】static

靜態定位。默認值,即沒有定位,遵循正常的文檔流對象,不受到 top、bottom、left、right影響。

【2】relative

相對定位。相對於離它最近的使用static定位的父元素進行定位,不脫離文檔流(不影響其他元素的佈局)。

例子:(爲顯而易見,將用內聯樣式)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
  <div style="width: 300px; height: 300px; background: #ccc;">
	<div style="width: 100%; height: 20px; background: #777;"></div>
		
	  <div style="width: 200px; height: 200px; background: pink">
		<div style="width: 50px; height: 50px; background: blue"></div>
		<div style="width: 50px; height: 50px; background: green; position: relative; top: 20px; left: 20px;"></div>
		<div style="width: 50px; height: 50px; background: yellow"></div>
	  </div>
		
  </div>
</body>
</html>

 

green塊使用了relative定位。可見,是相對於離它最近的使用static定位的父元素(pink塊)進行定位 的,不脫離文檔流(其他塊的佈局按文檔流佈局,blue塊與yellow塊之間,仍然保留着green塊的佈局大小)

【3】absolute 

絕對定位。相對於離它最近的使用relative定位的父元素進行定位,如沒有找到使用relative定位的父元素,將相對於瀏覽器視口進行定位,脫離文檔流(將影響其他元素的佈局)。

例子:

<!DOCTYPE html>
<html style="width:400px; height: 400px; border:1px solid red; margin-left: 30px;">
<head>
<meta charset="utf-8">
</head>
<body>
	<div style="width: 300px; height: 300px; background: #ccc;">
		
		<div style="width: 100%; height: 20px; background: #777;"></div>
		
		<div style="width: 200px; height: 200px; background: pink">
			<div style="width: 50px; height: 50px; background: blue"></div>
			<div style="width: 50px; height: 50px; background: green; position: absolute; top: 20px; left: 20px;"></div>
			<div style="width: 50px; height: 50px; background: yellow"></div>
		</div>
		
	</div>
</body>
</html>

 

 green塊使用了absolute定位。可見,它當前沒有找到使用relative定位的父級元素,所以相對於視口(非html)進行佈局,red框是<html></html>節點,另外,yellow塊的佈局改變了,blue塊與yellow塊之間並不保留着green塊的佈局。

現在我們在pink塊上添加relative定位試試看:

<!DOCTYPE html>
<html style="width:400px; height: 400px; border:1px solid red; margin-left: 30px;">
<head>
<meta charset="utf-8">
</head>
<body>
	<div style="width: 300px; height: 300px; background: #ccc;">
		
		<div style="width: 100%; height: 20px; background: #777;"></div>
		
		<div style="width: 200px; height: 200px; background: pink; position: relative;">
			<div style="width: 50px; height: 50px; background: blue"></div>
			<div style="width: 50px; height: 50px; background: green; position: absolute; top: 20px; left: 20px;"></div>
			<div style="width: 50px; height: 50px; background: yellow"></div>
		</div>
		
	</div>
</body>
</html>

可見,它當前相對於pink塊(使用relative定位的父級元素)進行佈局。

【4】fixed

固定定位。相對於瀏覽器視口進行定位,脫離文檔流(於其他元素的佈局無關)。相對容易理解,不上代碼。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章