相對定位是一個非常容易掌握的概念。如果對一個元素進(jìn)行相對定位,它將出現(xiàn)在它所在的位置上。然后,可以通過設(shè)置垂直或水平位置,讓這個元素“相對于”它的起點進(jìn)行移動。
如果將 top 設(shè)置為 20px,那么框?qū)⒃谠恢庙敳肯旅?20 像素的地方。如果 left 設(shè)置為 30 像素,那么會在元素左邊創(chuàng)建 30 像素的空間,也就是將元素向右移動。
#box_relative { position: relative; left: 30px; top: 20px;}如下圖所示:

注意,在使用相對定位時,無論是否進(jìn)行移動,元素仍然占據(jù)原來的空間。因此,移動元素會導(dǎo)致它覆蓋其它框。
那么我們就會想了怎么讓框三把框二覆蓋呢,很自然的想到把框3的z-index設(shè)為一個優(yōu)先級高的值如100,但是這樣并不能得到我們想要的結(jié)果,必須把框2的z-index設(shè)為優(yōu)先級低的如-1,
我猜想是因為框2已經(jīng)脫離了文檔流,所以只設(shè)置框3的z-index對框2起不到作用,所以只能對框2操作了。大家也可以去試試代碼如下在ie7下通過:
<html>
<head runat="server">
<title>Untitled Page</title>
<style type="text/css">
span
{
background-color: Red;
width: 30px;
height: 30px;
}
#box_relative
{
position: relative;
left: 10px;
top: 10px; background-color: gray;z-index:-1;
}
</style>
</head>
<body>
<span></span><span id="box_relative"></span><span style="z-index:30"></span>
</body>
</html>
CSS 絕對定位
絕對定位使元素的位置與文檔流無關(guān),因此不占據(jù)空間。這一點與相對定位不同,相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。
普通流中其它元素的布局就像絕對定位的元素不存在一樣:
#box_relative { position: absolute; left: 30px; top: 20px;}
新聞熱點
疑難解答