1. 程式人生 > >相對定位與絕對定位的區別

相對定位與絕對定位的區別

你對CSS相對定位和絕對定位區別是否瞭解,這裡和大家分享一下,CSS絕對定位使元素的位置與文件流無關,因此不佔據空間。這一點與CSS相對定位不同,CSS相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對於它在普通流中的位置。

CSS相對定位和絕對定位區別

CSS相對定位

CSS相對定位是一個非常容易掌握的概念。如果對一個元素進行CSS相對定位,它將出現在它所在的位置上。然後,可以通過設定垂直或水平位置,讓這個元素“相對於”它的起點進行移動。

如果將top設定為20px,那麼框將在原位置頂部下面20畫素的地方。如果left設定為30畫素,那麼會在元素左邊建立30畫素的空間,也就是將元素向右移動。

#box_relative{  
position:relative;  
left:30px;  
top:20px;  
}  

如下圖所示:
這裡寫圖片描述

CSS相對定位

注意,在使用CSS相對定位時,無論是否進行移動,元素仍然佔據原來的空間。因此,移動元素會導致它覆蓋其它框。

設定為CSS絕對定位的元素框從文件流完全刪除,並相對於其包含塊定位,包含塊可能是文件中的另一個元素或者是初始包含塊。元素原先在正常文件流中所佔的空間會關閉,就好像該元素原來不存在一樣。元素定位後生成一個塊級框,而不論原來它在正常流中生成何種型別的框。

CSS絕對定位

CSS絕對定位使元素的位置與文件流無關,因此不佔據空間。這一點與CSS相對定位不同,CSS相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對於它在普通流中的位置。

普通流中其它元素的佈局就像CSS絕對定位的元素不存在一樣:

#box_relative{  
position:absolute;  
left:30px;  
top:20px;  
}  

如下圖所示:
這裡寫圖片描述

CSS絕對定位

CSS絕對定位的元素的位置相對於最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那麼它的位置相對於最初的包含塊。

對於定位的主要問題是要記住每種定位的意義。所以,現在讓我們複習一下學過的知識吧:CSS相對定位是“相對於”元素在文件中的初始位置,而CSS絕對定位是“相對於”最近的已定位祖先元素,如果不存在已定位的祖先元素,那麼“相對於”最初的包含塊。

提示:因為CSS絕對定位的框與文件流無關,所以它們可以覆蓋頁面上的其它元素。可以通過設定z-index屬性來控制這些框的堆放次序。