DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS特效代碼 >> css之position(定位)的理解
css之position(定位)的理解
編輯:CSS特效代碼     

css中的position(定位)有四個屬性,比較容易搞混,這裡做一個小結來區分方便以後的使用。

position的四個屬性值:1.static     2.fixed     3.relative      4.absolute   

1.static定位:position的默認值,一般不設置position屬性時,元素會按照正常的文檔流進行排列。靜態定位的元素不會受到top, bottom, left, right影響。

2.relative: 相對於本身的位置進行偏移(static定位下的元素位置為本身的位置,因為static不受top, bottom, left, right的影響),所以會發生與其他元素重疊的情況,但原本所占的空間不會改變(即static和relative在文檔流中,與fixed和absolute相反)。相對定位元素經常被用來作為絕對定位元素的容器塊。

3.fixed定位: 元素的位置相對於浏覽器窗口是固定位置。即使窗口是滾動的它也不會隨之移動。fixed定位使元素的位置與文檔流無關,因此不占據空間。會與其他元素重疊。(總之,fixed是特殊的absolute)

4.absolute: 絕對定位的元素的位置相對於最近的已定位父元素,如果元素沒有已定位的父元素,那麼它的位置相對於<html>,即浏覽器窗口。這句話可以做以下詳解:                                                                                                                                                                                                               <div id="parent">
  <div id="sub1">sub1</div>
    <div id="sub2">sub2</div></div>                                                                                                                                                                                                                   當sub1的position設置為absolute後,其到底以誰為對象進行偏移呢?這裡分為兩種情況:
  (1).當sub1的父對象(或曾祖父,只要是父級對象)parent也設置了position屬性,且position的屬性值為absolute或者relative時,也就是說,不是默認值的情況,此時sub1按照這個parent來進行定位。
  注意,對象雖然確定好了,但有些細節需要您的注意,那就是我們到底以parent的哪個定位點來進行定位呢?如果parent設定了 margin,border,padding等屬性,那麼這個定位點將忽略padding,將會從padding開始的地方(即只從padding的左上 角開始)進行定位,這與我們會想當然的以為會以margin的左上端開始定位的想法是不同的。 接下來的問題是,sub2的位置到哪裡去了呢?由於當position設置為absolute後,會導致sub1溢出正常的文檔流,就像它不屬於 parent一樣,它漂浮了起來,在DreamWeaver中把它稱為“層”,其實意思是一樣的。此時sub2將獲得sub1的位置,它的文檔流不再基於 sub1,而是直接從parent開始。
  (2)如果sub1不存在一個有著position屬性的父對象,那麼那就會以body為定位對象,按照浏覽器的窗口進行定位。

  絕對定位的元素位置與文檔流無關,與fixed一樣,不占據空間。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved