CSS相對定位和絕對定位區(qū)別揭秘
你對CSS相對定位和絕對定位區(qū)別是否了解,這里和大家分享一下,CSS絕對定位使元素的位置與文檔流無關(guān),因此不占據(jù)空間。這一點與CSS相對定位不同,CSS相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。
CSS相對定位和絕對定位區(qū)別
CSS相對定位
CSS相對定位是一個非常容易掌握的概念。如果對一個元素進(jìn)行CSS相對定位,它將出現(xiàn)在它所在的位置上。然后,可以通過設(shè)置垂直或水平位置,讓這個元素“相對于”它的起點進(jìn)行移動。
如果將top設(shè)置為20px,那么框?qū)⒃谠恢庙敳肯旅?0像素的地方。如果left設(shè)置為30像素,那么會在元素左邊創(chuàng)建30像素的空間,也就是將元素向右移動。
- #box_relative{
- position:relative;
- left:30px;
- top:20px;
- }
如下圖所示:
注意,在使用CSS相對定位時,無論是否進(jìn)行移動,元素仍然占據(jù)原來的空間。因此,移動元素會導(dǎo)致它覆蓋其它框。
設(shè)置為CSS絕對定位的元素框從文檔流完全刪除,并相對于其包含塊定位,包含塊可能是文檔中的另一個元素或者是初始包含塊。元素原先在正常文檔流中所占的空間會關(guān)閉,就好像該元素原來不存在一樣。元素定位后生成一個塊級框,而不論原來它在正常流中生成何種類型的框。#p#
CSS絕對定位
CSS絕對定位使元素的位置與文檔流無關(guān),因此不占據(jù)空間。這一點與CSS相對定位不同,CSS相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。
普通流中其它元素的布局就像CSS絕對定位的元素不存在一樣:
- #box_relative{
- position:absolute;
- left:30px;
- top:20px;
- }
如下圖所示:
CSS絕對定位的元素的位置相對于最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那么它的位置相對于最初的包含塊。
對于定位的主要問題是要記住每種定位的意義。所以,現(xiàn)在讓我們復(fù)習(xí)一下學(xué)過的知識吧:CSS相對定位是“相對于”元素在文檔中的初始位置,而CSS絕對定位是“相對于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相對于”最初的包含塊。
注釋:根據(jù)用戶代理的不同,最初的包含塊可能是畫布或HTML元素。
提示:因為CSS絕對定位的框與文檔流無關(guān),所以它們可以覆蓋頁面上的其它元素。可以通過設(shè)置z-index屬性來控制這些框的堆放次序。
【編輯推薦】
- 深入理解DIV+CSS絕對定位和相對定位
- 三大CSS定位機(jī)制和position屬性用法
- CSS樣式表設(shè)計十個雕蟲小技
- 深入學(xué)習(xí)六大CSS選擇符的使用
- 解讀DIV CSS網(wǎng)頁布局中CSS無效十個原因