Div + CSS 進行網頁布局,適當地運用 absolute 與 relative,能給布局帶來意想不到的效果和方便,達到事半功倍…本文介紹了關於 absolute 與 relative 的運用。
詳細講解兩者的關系,需要配合例子,請先看例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Div + CSS Example, Wayhome's Blog</title>
<style type="text/css">
<!--
body,td,th{font-family:Verdana;font-size:9px;}
-->
</style></head>
<body>
<div style="position:absolute; top:5px; right:20px; width:200px; height:180px; background:#00FF00;">
position: absolute;<br />
top: 5px;<br />
right: 20px;<br />
<div style="position:absolute; left:20px; bottom:10px; width:100px; height:100px; background:#00FFFF;">
position: absolute;<br />
left: 20px;<br />
bottom: 10px;<br />
</div>
</div>
<div style="position:absolute; top:5px; left:5px; width:100px; height:100px; background:#00FF00;">
position: absolute;<br />
top: 5px;<br />
left: 5px;<br />
</div>
<div style="position:relative; left:150px; width:300px; height:50px; background:#FF9933;">
position: relative;<br />
left: 150px;<br />
<br />
width: 300px; height: 50px; <br />
</div>
<div style="text-align:center; background:#ccc;">
<div style="margin:0 auto; width:600px; background:#FF66CC; text-align:left;">
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<div style="padding:20px 0 0 20px; background:#FFFF00;">
padding: 20px 0 0 20px;
<div style="position:absolute; width:100px; height:100px; background:#FF0000;">position: <span style="color:#fff; ">absolute</span>;</div>
<div style="position:relative; left:200px; width:500px; height:300px; background:#FF9933;">
position: <span style="color:blue;">relative</span>;<br />
left: 200px;<br />
<br />
width: 300px;<br />
height: 300px;<br />
<div style="position:absolute; top:20px; right:20px; width:100px; height:100px; background:#00FFFF;">
position: absolute;<br />
top: 20px;<br />
right: 20px;<br /></div>
<div style="position:absolute; bottom:20px; left:20px; width:100px; height:100px; background:#00FFFF;">
position: absolute;<br />
bottom: 20px;<br />
left: 20px;<br />
</div>
</div>
</div>
</div>
</div>
</body>
</html>
absolute:絕對定位,CSS 寫法“ position: absolute; ”,它的定位分兩種情況,如下:
1. 沒有設定 Top、Right、Bottom、Left 的情況,默認依據父級的“內容區域原始點”為原始點,上面例子紅色部分(父級黃色區域有 Padding 屬性,“坐標原始點”和“內容區域原始點”不一樣)。
2. 有設定 Top、Right、Bottom、Left 的情況,這裡又分了兩種情況如下:
(1). 父級沒 position 屬性,浏覽器左上角(即 Body)為“坐標原始點”進行定位,位置由 Top、Right、Bottom、Left 屬性決定,上面例子綠色部分。
(2). 父級有 position 屬性,父級的“坐標原始點”為原始點,上面例子淺藍色部分。
relative:相對定位,CSS 寫法“ position: relative; ”,參照父級的“內容區域原始點”為原始點,無父級則以 Body 的“內容區域原始點”為原始點,位置由 Top、Right、Bottom、Left 屬性決定,且有“撐開或占據高度”的作用,上面例子橙色部分。
通過上面的例子和講解,相信熟練運用 absolute 與 relative 並不是一件很困難的事,我們周圍有不少關於 absolute 與 relative 的好例子,比如“網易163免費郵”首頁(http://mail.163.com),裡面就有大量的運用。
例子代碼在 IE5.5、IE6、FF1.5、Opera9 測試通過