之前老弄不明白,只能憑藉一點短期內“虐出來的經驗”製作需要的效果,後來仔細研究了一下Hutia的XScroller,並且仔細看了文檔,才知道這個position屬性其實是指本體對上級的定位。如果這麼理解,就好辦了。
預設的屬性值都是static,靜態。就不用多說了。最關鍵的是
relative(相對)以及absolute(絕對)。
往往我們如果是COPY別人的代碼,會把absolute屬性與left、top配合起來製作相關的“懸浮層”效果。然而有時候我們需要針對某一個容器的懸浮效果,而不是針對視窗的。這時候通過高度、寬度的計算不但麻煩,而且幾乎無法完美實現效果。我一開始也無能為力,後來發現只要把其上一級的樣式屬性 position設定為relative就可以了。
也就是說,position的屬性值的效果,直接受其容器樣式中position屬性值影響。
例如如下A-B的嵌套結構
<div id="A">
<div id="B">
</div>
</div>
當A的position為relative時,B的position為absolute才有效。這時候left:0、top:0就不再針對視窗文檔,而是針對id為A的這個div了。
這樣在開發一些基於B/S應用程式的時候,就能很方便的添加一些UI元素,例如某一個活動層的關閉按鈕等。
測試代碼如下
<!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>
<title>Untitled Page</title>
<style>
.Menu{
width:900px;
}
.Menu a{
display:inline;width:100px;vertical-align:middle; text-align:center;display:block; float:left;z-index:9999;
}
.MenuBar{
height:20px;background-color:blue; width:500px;position: relative;top:20px;z-index:-1;left:0px;width:900px;
}
.Menu a:hover{
background-color:Red;verflow:hidden;height:40px; z-index:9999;
}
</style>
</head>
<body>
<center>
<div style="width: 900px; height: 40px; position: relative">
<div class="Menu" style="height: 20px;">
<a href="http://www.my400800.cn">400電話</a> <a href="http://www.my400800.cn/400YeWuJianJie.aspx">400電話簡介</a> <a href="http://www.my400800.cn/400ZiFeiBiaoZhun.aspx">400電話資費</a> <a href="http://www.my400800.cn/400DianHuaShenQingLiuChengJiGaiNian.html">400電話申請流程</a> <a href="http://www.my400800.cn/LianXiWoMen.html">聯絡我們</a>
</div>
<div class="MenuBar" style="position: absolute">
</div>
</div>
<div style="width: 900px;">
本文內容測試
</div>
</center>
</body>
</html>
顯示效果如下:
400電話
400電話簡介
400電話資費
400電話申請
聯絡我們
本文內容測試