理解CSS相對定位和固定定位,理解css定位

來源:互聯網
上載者:User

理解CSS相對定位和固定定位,理解css定位
×目錄[1]相對定位 [2]固定定位前面的話

  一般地,說起定位元素是指position不為static的元素,包括relative、absolute和fixed。前面已經詳細介紹過absolute絕對位置的基礎和應用,這篇部落格介紹和梳理相對定位relative和固定定位fixed的相關知識

 

相對定位定義

  可能理解起來最簡單的定位機制就是相對定位了。採用這種機制時,通過使用位移屬性移動定位元素。當元素相對定位時,它會從其正常位置移走,不過,原來所佔的空間並不會因此消失。相對定位元素,會為其所有子項目建立一個新的包含塊。這個包含塊對應於該元素原本所在的位置

  [注意]如果相對定位元素遇到過度受限的問題,一個值會重設為另一個值的相反數。bottom總是等於-top,right總是等於-left

 

特性

【1】限制範圍

  一般地,給絕對位置元素限制範圍時,為其父級元素設定相對定位relative,因為相對定位元素不脫離文檔流

  [注意]相對定位元素可以限制絕對位置,但不能限制固定定位,因為固定定位是相對於視窗定位的

【2】提升層級

  當想要提升元素層級,又不想脫離文檔流時,使用相對定位是一個好主意

 

行內元素

  不同於絕對位置元素可以使元素具有區塊層級元素屬性,相對定位應用於inline元素後,由於無法改變其行內元素的屬性,不具備區塊層級元素屬性,無法設定寬高,其上下margin也依然存在問題

 

IE相容

  在IE6瀏覽器下,haslayout下的元素負margin超出父元素的部分會被隱藏掉。這個問題可以通過設定margin負值元素的position屬性值為relative來解決。

 

固定定位

  固定定位與絕對位置很類似,元素會完全從文檔流中去除,但固定元素的位移是相對於視窗。

  [注意]IE7-瀏覽器不支援

 

特性

  固定定位與絕對位置的很多特性都類似,具有包裹性、破壞性及去浮動的特性,關於各瀏覽器中display屬性的bug、clip屬性的隱藏功能、靜態位置跳動以及overflow失效的表現都相同,在此就不再贅述。

 

全屏遮罩

  當頁面內容超出頁面容器大小出現捲軸時,此時使用absolute全屏遮罩會出現捲軸以外部分沒有遮住的情況。因為根項目html的父級是document,document的高度和可視地區一致,也就是與視窗一致,是不包括捲軸以外部分的。

  這時,只能使用fixed固定定位來實現全屏遮罩效果

.page{    position: absolute;    top: 0;    bottom: 0;    left: 0;    right: 0;    background-color: pink;    z-index: -1;}    .test{    width: 2000px;    height: 200px;    background-color: lightblue;}
<div class="page" id="page"></div><div class="test"></div>    <button>absolute</button><button>fixed</button>
var btns = document.getElementsByTagName('button');for(var i = 0; i < btns.length; i++){    btns[i].onclick = function(){        page.style.position = this.innerHTML;    }}

//分別點擊兩個按鈕,並拖動橫向捲軸查看效果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.