position:relative 与 position:absolute
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的概念。
總結
以上是生活随笔為你收集整理的position:relative 与 position:absolute的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET基础教程-Web 自定义控
- 下一篇: **版权说明**