css的position屬性 居中 寬度自適應屏幕

1.absolute;絕對定位;對象從文檔流中抽取出來;也就是說該對象在dom中已經不佔位置了。

那麼如何定位呢?分爲兩種情況:

(1).父節點的position爲relative,這種情況下,設置top和left值,則相對的座標原點爲父節點當前位置,

(2).父節點的position爲其他屬性,那麼設置top和left值,則相對於body。

兩者都採用z-index設置層疊,採用top和left定位。

以上(1)(2)情況兼容IE678,FF,chrome,其他未測。

這兩種做法中,若不設置top和left的默認值,在IE67下根據其他元素定位不同會發生其他未預料情況,而在IE8及其它瀏覽器下top和left的默認值均爲0;在IE67下設置了position:absolute,而未設置其top和left值,會造成不期待的定位錯誤,但一旦設置了,又和其它瀏覽器無異,我反覆測試,尚無靈感。

以上是具有較好兼容性的寫法。而且設置父節點爲relative亦能解決IE6下浮動雙邊距的問題,何樂而不爲呢?

(3)無論是否設置父節點爲relative,任何設置爲absolut的對象都能設置margin屬性,在定位上和top與left可以達到相同效果,雖然也可以用,但定義中寫此時對象已經不再具有邊距了。至於爲什麼可以用,誰又知道呢?他們的“盒子”出身永遠沒變~

2.relative;相對定位,可用z-index來設置層疊,讓對象保留文檔流裏的位置,又能控制層疊。難道relative的一個重要作用應該在這?又或者是去限制一個無家可歸的absolute層?

[使用相對定位後,對象不可層疊]這句話我一直沒太理解。默認的static,在此基礎上加上relative對佈局位置不會造成任何影響。仍然是原來那一堆盒子。但這個有relative屬性的盒子變強大了:

  1. 可以通過top和left來設置偏移量,相對它原來的位置,而不會對別的元素造成任何影響,無論顯示在哪,它的根依然在原地;
  2. 可以設置z-index屬性,控制與其他的relative層亦或是遊蕩的absolute的層疊關係;
  3. 可以收留absolute孩子了;
哇,強大的relative。我們爲什麼要用relative,因爲它在那兒,它還在那兒~
你猜我做了什麼,找到一個網頁,在它的css文件前面加了句*{position:relative;}(如果你想在後面加,也可以試試~),預覽,哇,居然一點也沒變!現在可以構建一個三維的甚至讓它們飄來飄去的網頁了,重要的是,它們都還能回到原點,而不是全部推擠在網頁的左上角~
備註 *{position:relative;}  用 body{position:relative;} 代替更好

居中
position:relative;
margin-left:auto;
margin-right:auto;



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