css下position屬性詳解

來源:互聯網
上載者:User

標籤:html   css   

寫過CSS的人都免不了與position屬性打交道,但是要真正理解position屬性還不是一個很容易的事。前兩天博主想在一個html頁面上實現一個<div>元素重疊在另一個<div>元素上,並且位於該<div>元素的右下角的效果。在網上搜到他人的解決方案,並且也實現了,這裡面最關鍵的就是利用position屬性以及left、right、top、bottom等屬性。為了更為透徹地理解背後原理,博主在網上搜了相關的資料,總算是有了一些認識,或許也只是一知半解,不過先寫下來供大家分享。

在html中有塊元素和行元素之分。塊元素諸如div、p等,其中的子項目會按垂直方向排列,這些元素顯示為一塊內容;與之相反,span、strong等等元素被稱為行內元素,他們的內容顯示在行中,即橫向擴充。

凡是寫在HTML中的元素都會被載入到文檔流中,簡單的說文檔流就相當於一個容器,HTML中的所有元素都是按照從上到下,從左至右的順序被載入到文檔流中,然後在渲染網頁的時候,再根據文檔流中的順序將元素一個一個顯示在網頁中。所以在文檔流中的元素都是根據相對位置來進行繪製的。不過並不是所有的元素都會被放入到文檔流中,比如position為absolute、fixed等等情況時。

那麼現在就正式來講position屬性。position屬性共有4個值,分別是relative、absolute、fixed和static:

        static:這是position的預設值,static元素會出現在正常的文檔流中,並且按照磨人的規則繪製;

        relative:position為relative的元素依然會出現在文檔流中,設定為relative的元素同時是希望在正常的顯示位置的基礎上進行一些微 調。例如“left:20px”的意思就是在正常顯示位置的基礎上左邊縮排20像素;

        absolute:position為absolute的元素會從文檔流中刪除,absolute元素的繪製不再以正常位置進行顯示,而是以其第一個position不為static的父元素為定位範圍,再根據left、right等等屬性進行定位。

        fixed:position為fixed的元素的定位規則更absolute類似,只是fixed元素的定位範圍不再是父元素而是整個視窗。所以設定為fixed的元素在使用者滾動瀏覽網頁時,其相對於瀏覽器視窗的位置也不會改變。

好了,基本的定義解釋清楚了,現在就結合博主自己的實踐來談談具體的使用,博主想要實現的效果如下:

即一張圖片的右下角有一個按鈕。根據上文講解到的知識,這裡應該有兩個div元素,其中一個為另一個的父元素:

<div class="background_img" >    <img src="***" />    <div class="btn"><input type="button" /></div></div>
既然class為btn的<div>要相對於父元素定位,所以其position為absolute,同時再通過bottom和right來設定位置:

div.btn{position:absolute;right:10px;bottom:10px;}
而對於class為background_img的<div>元素來說,其position元素不能為預設的static,所以設定為relative即可:

div.background_img{position:relative;}
就這麼幾行,這個效果就實現了,各位讀者可以自己試一下。

css下position屬性詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.