棟棟曉07:詳解css佈局中的定位position屬性

CSS中大部分屬性都可以看w3c文檔可以理解,主要難以理解的屬性是盒型結構,Floa,position。本文將主要講述關於position的理解,力求讓您看完本文後對position有着最全面的認識。

Position 屬性:規定元素的定位類型。即元素脫離文檔流的佈局,在頁面的任意位置顯示。

主要的值

absolute :絕對定位;脫離文檔流的佈局,遺留下來的空間由後面的元素填充。定位的起始位置爲最近的父元素(postion不爲static),否則爲Body文檔本身。

②relative :相對定位;脫離文檔流的佈局,但還在文檔流原先的位置遺留空白區域。定位的起始位置爲此元素原先在文檔流的位置。

③fixed :固定定位;類似於absolute,但不隨着滾動條的移動而改變位置。

④static :默認值;默認佈局,無定位,應用於IE6的特殊處理。。
相對定位的規律

1.使用相對定位的盒子,會相對於它原本的位置,通過偏移指定的距離,到達新的位置
2.使用相對定位的盒子仍在標準流中(會佔據原來的位置),它對父親和兄弟盒子都沒有任何影響
絕對定位的規律

1.使用絕對定位的盒子以它的“最近”的一個“已經定位”的“祖先元素”爲基準進行定位。如果沒有已經定位的祖先元素,那麼會以瀏覽器窗口爲基準進行定位

2.絕對定位的框從標準流中脫離,這意味着他們對其後的兄弟盒子的定位沒有影響,其他的盒子好像就好像這個盒子不存在一樣

定位上下文
  1 relative的定位

  relative元素的定位永遠是相對於元素自身位置的,和其他元素沒關係,也不會影響其他元素。

  這裏寫圖片描述

  2 fixed的定位

  fixed元素的定位永遠是相對於瀏覽器邊界的,和其他元素沒有關係。但是它具有破壞性,會導致其他元素位置的變化。

  這裏寫圖片描述

  3 absolute的定位

  absolute的定位相對於前兩者要複雜許多。如果爲absolute設置了top、left,瀏覽器會根據什麼去確定它的縱向和橫向的偏移量呢?答案是瀏覽器會遞歸查找該元素的所有父元素,如果找到一個設置了position:relative/absolute/fixed的元素,就以該元素爲基準定位,如果沒找到,就以瀏覽器邊界定位。如下兩個圖所示:
這裏寫圖片描述
  

  這裏寫圖片描述

  上圖中的“某一層祖先元素”就是該absolute元素的定位上下文。講到這裏,我們上文中的那個圖,大家能看明白了吧?還有不明白的可以留言給我。

總結
  我感覺position這篇文章是css最難寫的文章,它的知識點比較多,而且非常難理解,因此position也是css的一個重點知識。

分享大牛的經驗:
對CSS中的Position、Float屬性的一些深入探討
http://www.cnblogs.com/coffeedeveloper/p/3145790.html#position

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章