{转摘}理解 position:relative 与 position:absolute
?
| 轉載:<a href="http://www.happyshow.org/article/125.html" target="_blank"> position 有三個值,static(靜態)、relative(相對)、absolute(絕對);由于static是所有頁面元素的默認值,因此設置元素的定位類型時幾乎不用這個值,除非用于覆蓋之前的定義。 對于后兩者,一般應用:在一個相對定位的元素里面放置一個絕對定位的元素,如圖: 子元素B可以通過top、right、bottom、left來精確定位,定位的參考目標就是其具有相對定位屬性的父級元素A;并且設置這些偏移后,產生的空隙會被后面的元素填充(如果后面的元素足夠尺寸的話)。由于B元素具有absolute定位屬性,相當于從文檔流中抽取出來,浮動在原平面排版上,形成“層”,如果有多個“層”,層與層之間就必然會有誰覆蓋誰,誰在上誰在下的競爭關系,因此,為解決這個競爭,就產生了z-index(空間坐標系的Z軸)屬性,誰的值大,誰就在上面。另外,如果父級元素A沒有設置relative,那么B元素就會以body標簽當作參考點。 對于具有position:relative屬性的元素A,其top、right、bottom、left四個方向的位置偏移就會以該元素的原來位置作為參考點,而不是像上面說的,以具有relative定位屬性的父級元素或body作為參考點。在設置了偏移后產生了空隙,其周圍的元素并不會填充這些空隙,即使它們足夠尺寸(演示)。值得注意的是,此時元素A的margin,margin將作用于該元素的原來位置,由于原位置產生偏移,該元素的最終位置將是margin與top、right、bottom、left共同作用后的位置,并且其周圍元素的位置也將產生影響。 回過頭來再看看 relative 里面的absolute,比如上面的A、B兩個元素,如果兩個元素都設置了top、right、bottom、left,對于元素B來說,其位置偏移的參考點是元素A偏移后的位置,不是元素A的原位置,同樣,如果元素B有margin,其參考點也是元素A偏移后的位置,這點很重要,這才是absolute的概念(演示)。 |
?
absolute與relative怎么區分,怎么用?我們都知道absolute是絕對定位,relative是相對定位,但是這個絕對與相對是什么意思呢?絕對是什么地方的絕對,相對又是相對于什么地方而言的呢?那它們又有什么樣的特性,可以做出什么樣的效果呢?關于兩者之間又有什么樣的技巧呢?Absolute,CSS中的寫法是:position:absolute; 它的意思是絕對定位,參照瀏覽器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面簡稱TRBL)進行定位,在沒有設定TRBL,默認依據父級的做標原始點為原點。如果設定TRBL并且父級沒有設定position屬性,那么當前的absolute則以瀏覽器左上角為原始點進行定位,位置將由TRBL決定。一般來講,網頁居中的話用Absolute就容易出錯,因為網頁一直是隨著分辨率的大小自動適應的,而Absolute則會以瀏覽器的左上角為原始點,不會應為分辨率的變化而變化位置。很多人出錯就在于這點上出錯。而網頁居左其特性與Relative很相似,但是還是有本質的區別的。Relative,CSS中的寫法是:position:relative; 意思是絕對相對定位,是參照父級的原始點為原始點,無父級則以BODY的原始點為原始點,配合TRBL進行定位,當父級內有padding等CSS屬性時,當前級的原始點則參照父級內容區的原始點進行定位。有時我們還需要依靠z-index來設定容器的上下關系,數值越大越在最上面,數值范圍是自然數。當然有一點要注意,父子關系是無法用z-index來設定上下關系的,一定是子級在上父級在下。
?
轉載于:https://www.cnblogs.com/nianshi/archive/2008/12/17/1356954.html
總結
以上是生活随笔為你收集整理的{转摘}理解 position:relative 与 position:absolute的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘 数据恢复
- 下一篇: 建立 Gtalk 群聊的多种方法