div中的相對定位與絕對定位

這一段時間打算徹底用CSS的DIV編寫一個頁面,作了兩天思緒就有點亂了。
有的時候把某一個問題單獨抽出來看感受很簡單。而複合起來就難的多,各類各樣的問題就來了。
程序中最討厭的就是找BUG了。思路先後銜接不上,捋不清頭緒,看的頭都大了。
家裏有兩個高手,不過卻不多問。就像個人東西必定要從頭至尾由我經手來作,那纔是個人東西。呵呵~
****************************************
學習筆記:呵呵~~此次的筆記比較多
定位標籤: position
包含的屬性 :relative(相對)與 absolute(絕對)

1.position:relative; 若是對一個元素進行相對定位,首先它將出如今它所在的位置上。而後經過設置垂直或水平位置,讓這個元素「相對於」它的原始起點進行移動。
再一點,相對定位時,不管是否進行移動,元素仍然佔據原來的空間。所以,移動元素會致使它覆蓋其餘框
例如:#mybox{
position:relative;
left:20px;
top:20px;
}
效果就是使這個層向下和向左移動了20px。
2.position:absolute; 表示絕對定位,位置將依據瀏覽器左上角的0點開始計算,
絕對定位使元素與文檔流無關,所以不佔據空間。普通文檔流中其這元素的佈局就像絕對定位的元素不存在時同樣。它相對於最近的已定位的祖先元素。若是元素沒有已定位的祖先元素,那麼它的位置相對於最初的包含塊。根據用戶代理的不一樣,最初的包含塊多是畫布事HTML元素。
(由於絕對定位的框與文檔流無關,因此它們能夠覆蓋頁面上的其餘元素並能夠經過z-index來控制這些框的堆放次序。z-index的值越高,框在堆中的位置就越高。)

那麼有個問題產生了,如今你們作的網頁大部分是居中的,那麼我須要這個元素跟着網頁

中的某個元素位置不論分辨率是多少他的位置始終是針對頁內的某個元素的,那麼單純的

absolute是不行的。


正確的解決方法就是在元素的父級元素定義爲position:relative;(更正:這裏能夠是祖父

級,也能夠是position:absolute;)須要絕對定位的元素設爲position:absolute; 

這樣再設定top,right,bottom,left的值就能夠了,這樣其定位的參照標準就是父級的左上角padding的左上側!
********************************************************************************
在網上載了一段文章收藏:
CSS單元的位置和層次-div標籤 咱們都知道,在網頁上利用HTML定位文字和圖象是一件「使人心痛」的事情。咱們必須使用表格標籤和隱式GIF圖象,即便這樣也不能保證定位的精確,由於瀏覽器和操做平臺的不一樣會使顯示的結果發生變化。
  而CSS能使你看到但願的曙光。利用今天咱們即將學到的CSS屬性,你能夠精確地設定要素的位置,還能將定位的要素疊放在彼此之上,還有...還有......你本身慢慢看吧!
  Cascading Style Sheets(CSS)是 DHTML 的基礎。CSS 用來設定你網頁上的元素是如何展現的。Cascading Style Sheets Positioning(CSS-P)是 CSS 的一個擴展,它可用來控制任何東西在網頁上或是說在窗口中的位置。請你記住這兩個名詞:CSS 和 CSS-P。下面四個英文網址提供了詳細的關於 CSS 和 CSS-P 的文件和解釋。
 ● 1.使用 DIV 標籤 (div)
  當咱們使用 CSS-P 的時候, 咱們主要把它用在 DIV(division)tag 上。當你把文字,圖象,或其餘的放在 DIV 中,它可稱做爲「DIV block」,或「DIV element」或「CSS-layer」,或乾脆叫「layer」。而中文咱們把它稱做「層次」。因此當你之後看到這些名詞的時候,你就知道它們是指一段在 DIV 中的 HTML。
  使用 DIV 的方法跟使用其餘 tag 的方法同樣:
    <DIV>This is a DIV tag .</DIV>
  若是單獨使用 DIV 而不加任何 CSS-P, 那麼它在網頁中的效果和使用 <P></P> 是同樣的。
  但當咱們把 CSS-P 用到 DIV 中去之後,我麼就能夠嚴格設定它的位置。首先咱們須要給這個能夠被 CSS-P 控制的 DIV 一個 ID 或說是它的名字。好比說咱們給下面這個 DIV 的名字是 truck。給名字的目的是咱們之後可用 javascript 來控制它, 好比說移動它或改變它的一些性質等等。
    <DIV ID="truck">
    This is a truck
    </DIV>
  給層次取什麼名字是隨意的,名字能夠是任何英文字母和數字,但第一個必須是字母。有兩種把 CSS-P 應用到 DIV 的方法。
  Inline CSS:Inline 是最經常使用的方法。
    <DIV ID="truck" STYLE="styles go here">
    This is a truck .
    </DIV>
  External STYLE tag:使用 External 方法的結果是同樣的。咱們會在之後的課程裏再詳細解釋這種方法。如今咱們主要討論Inline 方法。請注意在 External 方法裏,在 STYLE 裏的 ID 和 DIV 裏的關係。
    <STYLE TYPE="text/css">
    <!-- #truck {styles go here} -->
    </STYLE>
    <DIV ID="truck">This is a truck .</DIV>
  Cross-Browser CSS 性質:
  咱們這個課程的主要目的是讓你寫出的網頁在 NS4 和 IE4 上都能工做, 因此咱們主要討論那些對倆者都通用的性質。下面這些性質符合由 W3C 給出的標準。
position 決定 DIV tag 是如何放置的。「relative」意思是DIV的位置是相對於其餘 tag 的,而「absolute」是說 DIV tag 的位置是相對於它所在的窗口。
left 相對於窗口左邊的位置
top 相對於窗口上邊的位置
width DIV tag 的寬度。全部在 DIV 裏的文字或html都在裏面。
height DIV tag 的高度。這個性質不多用除非你想 Clip 層次。
clip 給出 layer 的 clipping(可看的見的)部分。Clip 可以使得 DIV 顯示爲一個能夠定義的很準確的方塊。你能夠用如下的四個值來給出這個方塊的在 DIV 位置和大小。
clip:rect(top,right,bottom,left);
visibility 隱蔽或展示DIV 根據它的值「visible」,「hidden」,「inherit」。
z-index DIV tag 的立體位置。值越大 DIV 的位置越高。
background-color DIV 背景的顏色。
layer-background-color Netscape 的 DIV 背景顏色。
background-p_w_picpath DIV 的背景圖象。
layer-background-p_w_picpath Netscape 的 DIV 的背景圖象。
 ● 2.絕對定位和相對定位 (position)
  絕對定位:
  定位屬性將是網蟲們打開幸福之門的鑰匙:
  H4 { position: absolute; left: 100px; top: 43px }
  這項CSS規則讓瀏覽器將<H4>的起始位置精確地定在距離瀏覽器左邊100象素,距離其頂部43象素的位置。注意這裏惟一設置了的是左邊和頂部,也就說,文字將從左到右,從上到下載入瀏覽窗口。
  左邊和頂部屬性很直觀,左邊(left)設定要素距瀏覽器窗口左邊的距離,頂部(top)設定距離瀏覽器窗口頂部的距離。設定這些距離時,你可使用所學過的各類度單位或比例值。使用比例值時,比例值的是相對於母體要素的尺寸。
  你能夠定位什麼呢?任何東西!段落、單詞、GIF和JPEG圖象、QUICKTIME電影等等。
  相對定位:
  絕對定位使你能精確地定位要素在頁面的獨立位置,而不考慮頁面其它要素的定位設置。相對定位指你所定位的要素的位置相對於在文件中所分配的位置。例:
  I { position: relative; left: 40px; top: 10px }
  相對定位的關鍵在於定位了的要素的位置是相對於它一般應在的位置進行定位。相對定位單元出如今普通的靜態定位單元的行間,定位時沒有把本身和靜態定位單元徹底分開。若是你中止使用相對定位,則文字的顯示位置將恢復正常。使用相對定位時要當心,不然容易將頁面弄得很是亂。
  除了相對定位和絕對定位,你還可使用static(靜止)參數值。Static 是 position 特性的缺省值。它的使用方法同普通HTML中的定位方法,不能附加特殊的定位設置。也就是說,除了邊距特性,或經過使用 float 特性來浮動單元可影響單元的定位外,其它均不能夠。
 ● 3.定位單元的控制 (width、height、visiblility)
  除了控制定位單元的左上角位置,你還能夠控制單元的寬度和高度,及單元在頁面的可視性。
  寬度:定位了的要素在頁面上顯示時仍然會從左到右一直顯示。利用寬度屬性就能夠設定字符向右流動的限制,即設定要素的寬度。
  DIV { position: absolute; left: 200px; top: 40px; width: 150px }
  瀏覽器接到這項規則時,它將文字按照規則規定的效果顯示,還將段落的最大水平尺寸限制在150象素。
  寬度屬性只適用於絕對定位的要素。你可使用咱們學過的任何一種長度單位,或使用比例值設定寬度,比例值指相對於母體要素的比例。IE 4中,這項屬性還可用於圖象。你能夠經過寬度設置人爲地拉寬或壓縮圖象。
  高度:理論上講,高度應該和寬度的設置相似,只不過是在垂直方向上:
  DIV { position: absolute; left: 200px; top: 40px; height: 150px }
  這裏我用了「理論上講」,由於有些瀏覽器不支持高度屬性。
  可視性:利用CSS,你能夠隱藏要素,使其在頁面上看不見。這條屬性對於定位了的和未定位的要素都適用。
  H4 { visibility: hidden }
  選項:
visible 使要素能夠被看見
hidden 使要素被隱藏
inherit 指它將繼承母體要素的可視性設置。
  值 inherit 爲缺省值。這使單元繼承父單元的可見性。因此,若是某一段是隱藏的,則它包含的任何行間單元也都被隱藏。這一繼承性可被明確指定的可見性取代。例如,段內的 EM 單元被指定爲可見,這時若是該段被隱藏,則段內的全部其它內容都將消失,而惟有 EM 單元中的文本是可見的。
  當一個要素被隱藏後,它仍然要佔據瀏覽器窗口中的原有空間。因此,若是你將文字包圍在一幅被隱藏的圖象周圍,那麼,其顯示效果將是文字包圍着一塊空白區域。
  這條屬性在編寫語言和使用動態HTML時頗有用,好比你可使某段落或圖象只在鼠標滑過期才顯示。
● 4.單元層次 (z-index)
  特性 z-index 用於堆疊屏幕上的單元。缺省狀況下,單元堆疊的順序爲它們出如今HTML標記的順序——也就是說,後出現單元堆疊在早出現單元的上面。Z-index 特性實際上定義同屬(sibling)單元的堆疊順序以及單元相對父單元的堆疊。按照規範草案,具備正 z-index 值的單元羣都堆疊在父單元之上,它們本身的堆疊順序則按其取值的大小來決定(值大的單元在上層)。一樣,具備負 z-index 值的單元羣都堆疊在父單元之下,它們本身的堆疊順序也按取值的大小來定(值大的單元在上層,例如值爲 -1 的單元在值爲 -2 的單元的上面)。
  該參數值使用純整數。z-index用於絕對定位或相對定位了的要素。你也能夠給圖象設定z-index。(對於Communicator,最好將 <IMG>標籤包在<SPAN>或 <DIV>標籤內,而後將z-index應用到<SPAN>或 <DIV>。)
 ● 5.剪輯絕對定位單元 (clip)
  絕對定位單元能夠被剪輯——也即剪輯顯示給用戶的區域,只顯示單元的一部分而把其他部分做透明處理。對於傳統的基於文本和圖像的網絡頁面,這並非一個頗有用的特徵。但若要求多媒體頁面,這是頗有用的。如 Netscape Communivator 4 和 Internet Explorer 4 都支持多媒體頁面,它們經過文檔的腳本接口動態地調整單元周圍的剪輯區,從而實線文本「劃入」和圖像漸顯等顯示特徵。
  在CSS中,剪輯經過 clip 特性來控制,這一特性只能用於絕對定位單元,其缺省值爲 auto,按單元的外邊緣來剪輯單元(實際上等於沒有剪輯)。另外,可經過以下表達式設置剪輯框:
  clip : rect(top,right.bottom,left) ;
  其中 top、right、bottom 和 left 分別是矩形剪輯框的上邊、右邊、下邊和左邊相對於被剪輯單元左上角的位置。Top、right、bottom 和 left 的值能夠爲任意絕對或相對長度值(但不能爲百分比值),或者是關鍵字 auto。取值爲 auto 意味着剪輯區域的各邊放好之後,被剪輯單元中的任何內容都不會超出這個區域。
 ● 6.控制單元溢出 (overflow)
  固定絕對或相對定位單元的 width 和 height,極可能會由於指定的區域不能知足單元實際內容的須要,而形成單元內容溢出。這時可以使用 overflow 來指定瀏覽器如何處理溢出:值 none(缺省值)容許瀏覽器顯示溢出的內容,所以單元可溢出指定的區域。而值 clip 要求瀏覽器在單元底部和右邊剪輯單元內容,這樣,超出指定區域的單元內容將不顯示。值 scroll 也一樣要求瀏覽器在單元底部和右邊剪輯單元內容(同 clip),不過,瀏覽器應該(若是可能的話)爲單元提供滾動條以使用戶能經過滾動來瀏覽被剪輯的內容。
相關文章
相關標籤/搜索