2天駕馭DIV+CSS!第六課

來源:互聯網
上載者:User
如果用position來布局頁面,父級元素的position屬性必須為relative,而定位於父級內部某個位置的元素,最好用absolute

註:在做這節教程的時候,我又上網查了相關資料,看了大量的文章,做了大量的測試,最後總結出下面這些文字,洋洋洒洒一整篇,不過需要大家一句話一句話的看,一定要仔細嘍!還有對於課程中的說的,最好一邊看,一邊練,不練絕對看不懂!

定位(position)布局頁面說容易非常容易,只需要記住這節課最後一句話就可以了,說困難,那是相當的難理解,需要一定的耐心,不過還好,KwooJan給大家總結的已經很通俗易懂了。

如果下面的文字實在是無法理解透,那就記住這節課最後總結的一句話“如果用position來布局頁面,父級元素的position屬性必須為relative,而定位於父級內部某個位置的元素,最好用absolute,因為它不受父級元素的padding的屬性影響,當然你也可以用position,不過到時候計算的時候不要忘記padding的值。

好,上課!
任何元素的預設position的屬性值均是static,靜態。這節課主要講講relative(相對)以及absolute(絕對)。
【position:absolute】
意思是:他的意思是絕對位置,他預設參照瀏覽器的左上方,配合TOP、RIGHT、BOTTOM、LEFT(下面簡稱TRBL)進行定位,有以下屬性:
1)如果沒有TRBL,以父級的左上方,在沒有父級的時候,他是參照瀏覽器左上方,如果在沒有父級元素的情況下,存在文本,則以它前面
的最後一個文字的右上方為原點進行定位但是不斷開文字,覆蓋於上方。
2)如果設定TRBL,並且父級沒有設定position屬性,那麼當前的absolute則以瀏覽器左上方為原始點進行定位,位置將由TRBL決定。
3)如果設定TRBL,並且父級設定position屬性(無論是absolute還是relative),則以父級的左上方為原點進行定位,位置由TRBL決定。即
使父級有Padding屬性,對其也不起作用,說簡單點就是:它只堅持一點,就以父級左上方為原點進行定位,父級的padding對其根本沒有
影響。
以上三點可以總結出,若想把一個定位屬性為absolute的元素定位於其父級元素內,只有滿足兩個條件,
第一:設定TRBL
第二:父級設定Position屬性

上面的這個總結非常重要,可以保證你在用absolue布局頁面的時候,不會錯位,並且隨著瀏覽器的大小或者顯示器解析度的大小,而不
發生改變。
只要有一點不滿足,元素就會以瀏覽器左上方為原點,這就是初學者容易犯錯的一點,已經定位好的板塊,當瀏覽器的大小改變,父級元
素會隨之改變,但是設定Position屬性為absolute的板塊和父級元素的位置發生改變,錯位了,這就是因為此時元素以瀏覽器的右上方為
原點的原因。
初學者很容易犯錯的是,不清楚Position屬性為absolute的板塊,若想定位到父級板塊中,並且當瀏覽器的大小改變或顯示器的解析度改
變,布局不發生改變,是需要滿足兩個條件的,只要有一點不滿足,元素就會以瀏覽器左上方為原點,從而導致頁面配置錯位。
【position:relative】
意思是相對定位,他是預設參照父級的原始點為原始點,無父級則以文字資料流的順序在上一個元素的底部為原始點,配合TRBL進行定位,當
父級內有padding等CSS屬性時,當前級的原始點則參照父級內容區的原始點進行定位,有以下屬性:
1)如果沒有TRBL,以父級的左上方,在沒有父級的時候,他是參照瀏覽器左上方(到這裡和absolute第一條一樣),如果在沒有父級元素的
情況下,存在文本,則以文本的底部為原始點進行定位並將文字斷開(和absolut不同)。
2)如果設定TRBL,並且父級沒有設定position屬性,仍舊以父級的左上方為原點進行定位(和absolut不同)
3)如果設定TRBL,並且父級設定position屬性(無論是absolute還是relative),則以父級的左上方為原點進行定位,位置由TRBL決定(前
半段和absolut一樣)。如果父級有Padding屬性,那麼就以內容地區的左上方為原點,進行定位(後半段和absolut不同)。
以上三點可以總結出,無論父級存在不存在,無論有沒有TRBL,均是以父級的左上方進行定位,但是父級的Padding屬性會對其影響。
綜合上面對relative的敘述,我們就可以將position屬性為relative的DIV視成可以用TRBL進行定位的的普通DIV,或者說只要將我們平時布局頁面的div的CSS屬性中加上position:relative後,就不只是用float布局頁面了,還可以用TRBL進行布局頁面了,或者說加上position:relative的DIV也可以像普通的DIV進行布局頁面了,只不過還可以用TRBL進行布局頁面。但是position屬性為absolute不可以
用來布局頁面,因為如果用來布局的話,所有的DIV都相對於瀏覽器的左上方定位了,所以只能用於將某個元素定位於屬性為absolute的元素的內部某個位置,這樣我們就可以總結比較重要的結論
屬性為relative的元素可以用來布局頁面,屬性為absolute的元素用來定位某元素在父級中的位置
既然屬性為absolute的元素用來定位某元素在父級中位置,就少不了TRBL,這時候根據一開始講的absolute的第三條,如果父級元素沒有
position屬性那麼absolute元素就會脫離父級元素,但是如果是布局頁面,父級元素position的屬性又不能為absolute,不然就會以瀏覽器左上方為原點了,所以父級元素的position屬性只能為relative!
=============================================
總結:如果用position來布局頁面,父級元素的position屬性必須為relative,而定位於父級內部某個位置的元素,最好用absolute,因為它不受父級元素的padding的屬性影響,當然你也可以用position,不過到時候計算的時候不要忘記padding的值。
=============================================
下節課我將拿第5節的例子,給大家講講,如何用position布局


本文來自www.cssxuexi.cn *尊重他人勞動成果,轉載請自覺註明出處! 



聯繫我們

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