DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> 關於CSS >> css關於position屬性的用法詳解(絕對定位和相對定位的混淆)
css關於position屬性的用法詳解(絕對定位和相對定位的混淆)
編輯:關於CSS     

挺久沒用,有點忘了關於position這個屬性的用法,導致在練手的時候又犯了跟最開始新手才會犯的錯誤,那就是absolute和relative的用法。

在此首先看一下官方對這兩個屬性值的解釋:

position 屬性值的含義:

static

元素框正常生成。塊級元素生成一個矩形框,作為文檔流的一部分,行內元素則會創建一個或多個行框,置於其父元素中。

relative

元素框偏移某個距離。元素仍保持其未定位前的形狀,它原本所占的空間仍保留。

absolute

元素框從文檔流完全刪除,並相對於其包含塊定位。包含塊可能是文檔中的另一個元素或者是初始包含塊。元素原先在正常文檔流中所占的空間會關閉,就好像元素原來不存在一樣。元素定位後生成一個塊級框,而不論原來它在正常流中生成何種類型的框。

fixed

元素框的表現類似於將 position 設置為 absolute,不過其包含塊是視窗本身。

事實上默認的static和fixed這兩種情況是比較容易辨別的,而容易混淆的是relative和absolute。

用更簡單的說法就是absolute是將原本在文檔流中所占的位置去掉,並以第一個非static定位的父元素進行定位,一般這樣我們都會用top,left等來控制位置,這就是絕對定位。

而relative這種定位方式則是,在原有的文檔流位置(也就是未設置POSITION屬性的時候的位置)基礎上移動。

所以當我們一般需要讓某些元素隨父元素移動而不會因為浏覽器窗口大小變動而變形時,一般我們會把父元素定義為relative,而子元素定義為absolute,也就是說absolute是以第一個非static定位的父元素作為參考對象。

而一般我們會讓內容居中,讓margin:0 AUTO;就好了。

至於top和margin-top的區別,有些人可能分不清什麼時候用,經常會用margin-top來實現定位,事實上這種做法是錯誤的,margin它是外邊距,是占內容的,往往用這個來勉強實現定位都會使其他元素位置改變或導致其他效果,而這個效果並非我們想要的。

所以要認清absolute和relative的區別和用法,加上TOP LEFT RIGHT BOTTOM來定位就可以減少錯誤了。

順帶一提,CSS3之後多了挺多新屬性的,自己還沒一個個看,暫時記一下,background-size:cover;這個是本身就有還是後來才有的?我用DW8的時候並沒有這個屬性提示;

另外CSS3有很多屬性IE是不能支持的,即使有那也是9甚至10以上才能兼容,所以在寫的時候要注意浏覽器的判斷,根據不同浏覽器設計不同的樣式

<!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]-->
<!--[if IE]> 所有的IE可識別 <![endif]-->
<!--[if IE 6]> 僅IE6可識別 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可識別 <![endif]-->
<!--[if IE 7]> 僅IE7可識別 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可識別 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可識別 <![endif]-->
<!--[if IE 8]> 僅IE8可識別 <![endif]-->
<!--[if IE 9]> 僅IE9可識別 <![endif]-->

以上這篇css關於position屬性的用法詳解(絕對定位和相對定位的混淆)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved