1.直接在css中設置left生效的前提是必須設置父容器position:absolute或relative,如果不設置則會以最近一個定位的父對象為參考點,。margin-left則不用設position也可以用。
2,通常情況下,我們元素的position屬性的值默認為static 就是沒有定位,這個時候你給這個元素設置的left,right,bottom,top這些偏移屬性都是沒有效果的,z-index屬性這時也不會有效。
3,對某元素設置了相對定位,它移動后仍占據着原來的空間,不會被其他塊填補掉,它的偏移也不會把別的塊從文檔流中原來的位置擠開,會疊在其他元素之上,可用z-index調。
被設置了絕對定位的元素不占空間,原位置被刪除,也可用z-index來設置它們的堆疊順序。
4,設置為相對定位的元素,會相對於它的起點進行移動。
設置為絕對定位的元素,絕對定位是“相對於”最近的已定位(非static,即relative,absolute或fixed)祖先元素,如果不存在已定位的祖先元素,那么會“相對於”<body>進行定位,例如設置了top:20,right:30,那元素就會離頂部20,離右邊界30,,這里的margin和padding沒清零,所以看着top比right大。
5,當兩個元素設為relative時,后一個能覆蓋到前一個上,前一個不會動。
第一個設了relative,第二個設了absolute,情況與上同。
第一個設為relative,第二個不設,情況上同。
第一個設為absolute,第二個設為relative,情況與上同。
第一個設為absolute,第二個設為absolute,上同,能覆蓋且以body為基准。
第一個設為absolute,第二個不設,第一個移位了后,第二個會把原第一個元素的位置占掉,可能會與第一元素重疊。
以下摘錄了一段總結:
position的relative和absolute屬性要搭配來用,但是當我們布局的時候,盡量不要用position屬性來進行定位,用position確實爽,能霸道地直接把元素移動到瀏覽器顯示區域的任何位置,但是這破壞了網頁設計的布局嵌套,而且你會發現,用position霸道的改動位置設計出的布局,在瀏覽器放大縮小的時候,元素就全都亂套了,發生很多錯位現象。我們在網頁的布局時了,最基本的margin,float一些屬性已經可以應付90%的布局情況了,能不用position就不用position,當我們想要耍無賴的時候,比如在頁面滾動的時候,始終在瀏覽器的固定位置顯示一個廣告窗口(用position:fixed來實現),或者在點擊元素跳出彈窗遮蓋其他頁面元素只允許在彈窗上操作時(用positionLabsolute實現),才會用到position屬性,否則,濫用position只會造成頁面結構的混亂
--------------------- https://blog.csdn.net/qq_37856300/article/details/82799545
And :
1,給行內元素絕對定位之后就轉化為行內快了。
2,行內元素相對定位后不會轉化為行內塊。
3,TOP、RIGHT、BOTTOM、LEFT 簡稱TRBL 。