relative、absolute和float


  position:relative和position:absolute都可以改變元素在文檔中的位置,都能激活元素的left、top、right、bottom和z-index屬性。(默認這些屬性未激活,設置了也無效)

  設置position:relative和position:absolute都會讓元素浮起來,會改變正常情況下的文檔流。

  不同:

  position:relative會保留自己在z-index:0層的占位,left、top、right、bottom值是相對於自己在z-index層的位置。

  position:absolute會完全脫離文檔流,不再z-index:0層保留占位符,其left、top、right、bottom值是相對於自己最近的一個設置了position:relative或position:absolute的祖先元素的,如果祖先元素全都沒有設置,那么就相對於body元素。

 

  float也能改變文檔流,不同的是,float不會讓元素浮到另一個元素上面,它仍然讓元素在z-index:0層排列,只能通過float:left和float:right來控制元素在同一層里"左浮"和"右浮"。float會改變正常的文檔流排列,影響周圍元素。

 

  position:absolute和float會隱式的改變display類型,不論之前什么類型的元素(display:none除外),只要設置了position:absolute和float中任何一個,都會讓元素以display:inline-block的方式顯示:可以設置長寬,默認寬度並不占滿父元素。就算顯示的設置display:inline或者display:block,也仍然無效(IE6雙倍邊距BUG利用display:inline解決)。

  position:relative卻不會隱式改變display類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM