CSS 21天入門:定位(position)
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
一、概述CSS 定位 (Positioning) 屬性允許你對元素進行定位。 定位的基本思想很簡單,它允許你定義元素框相對于其正常位置應(yīng)該出現(xiàn)的位置,或者相對于父元素、另一個元素甚至瀏覽器窗口本身的位置。顯然,這個功能非常強大,也很讓人吃驚。 二、CSS 定位機制CSS 有三種基本的定位機制:普通流、浮動和絕對定位。 除非專門指定,否則所有框都在普通流中定位。也就是說,普通流中的元素的位置由元素在 (X)HTML 中的位置決定。 塊級框從上到下一個接一個地排列,框之間的垂直距離是由框的垂直外邊距計算出來。 行內(nèi)框在一行中水平布置。可以使用水平內(nèi)邊距、邊框和外邊距調(diào)整它們的間距。但是,垂直內(nèi)邊距、邊框和外邊距不影響行內(nèi)框的高度。由一行形成的水平框稱為行框(Line Box),行框的高度總是足以容納它包含的所有行內(nèi)框。不過,設(shè)置行高可以增加這個框的高度。 三、定位實現(xiàn)定位是通過使用 position 屬性來實現(xiàn)。我們可以選擇 4 種不同類型的定位,這會影響元素框生成的方式。 position 屬性值的含義:
提示:相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。 絕對定位是相對于父級元素而言的,也就是絕對定位必須由一個參照物(默認(rèn)為父級元素)。 固定定位是元素絕對固定在某個位置。 四、應(yīng)用場景1、相對定位相對定位是一個非常容易掌握的概念。如果對一個元素進行相對定位,它將出現(xiàn)在它所在的位置上。然后,可以通過設(shè)置垂直或水平位置,讓這個元素“相對于”它的起點進行移動。 如果將 top 設(shè)置為 20px,那么框?qū)⒃谠恢庙敳肯旅?20 像素的地方。如果 left 設(shè)置為 30 像素,那么會在元素左邊創(chuàng)建 30 像素的空間,也就是將元素向右移動。
效果圖: 注意,在使用相對定位時,無論是否進行移動,元素仍然占據(jù)原來的空間。因此,移動元素會導(dǎo)致它覆蓋其它框。 2、絕對定位設(shè)置為絕對定位的元素框會從文檔流完全刪除,并相對于其父級元素定位,父級元素可能是文檔中的另一個元素或者是初始包含塊。 元素原先在正常文檔流中所占的空間會關(guān)閉,就好像該元素原來不存在一樣。 元素定位后生成一個塊級框,而不論原來它在正常流中生成何種類型的框。
絕對定位使元素的位置與文檔流無關(guān)(類似float的效果),因此不占據(jù)空間。這一點與相對定位不同,相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。 普通流中其它元素的布局就像絕對定位的元素不存在一樣:
效果圖: 絕對定位的元素的位置相對于最近的已定位祖先元素(父級元素),如果元素沒有已定位的祖先元素,那么它的位置相對于最初的包含塊(body)。
3、fixed常用場景為網(wǎng)站的header部分,經(jīng)??梢钥吹焦潭ǖ那闆r,如下圖: ?
4、總結(jié)相對定位是“相對于”元素在文檔中的初始位置,元素原來的空間還會占用; 而絕對定位是“相對于”最近的已定位父級元素,如果不存在已定位的父級元素,那么“相對于”最初的包含塊,且絕對定位類似float,元素不存在原來空間一說。 fixed經(jīng)常用于網(wǎng)站的頂部固定。 提示:因為絕對定位的框與文檔流無關(guān),所以它們可以覆蓋頁面上的其它元素??梢酝ㄟ^設(shè)置 z-index 屬性來控制這些框的堆放次序。 參考文獻: http://www.w3school.com.cn/css/css_positioning.asp 該文章在 2024/10/19 16:54:12 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |