css關于position屬性的用法詳解(絕對定位和相對定位的混淆)

挺久沒用,有點忘了關于position這個屬性的用法,導致在練手的時候又犯了跟最開始新手才會犯的錯誤,那就是absolute和relative的用法。
在此首先看一下官方對這兩個屬性值的解釋:
position 屬性值的含義:
static
元素框正常生成。塊級元素生成一個矩形框,作為文檔流的一部分,行內元素則會創(chuàng)建一個或多個行框,置于其父元素中。
relative
元素框偏移某個距離。元素仍保持其未定位前的形狀,它原本所占的空間仍保留。
absolute
元素框從文檔流完全刪除,并相對于其包含塊定位。包含塊可能是文檔中的另一個元素或者是初始包含塊。元素原先在正常文檔流中所占的空間會關閉,就好像元素原來不存在一樣。元素定位后生成一個塊級框,而不論原來它在正常流中生成何種類型的框。
fixed
元素框的表現(xiàn)類似于將 position 設置為 absolute,不過其包含塊是視窗本身。
事實上默認的static和fixed這兩種情況是比較容易辨別的,而容易混淆的是relative和absolute。
用更簡單的說法就是absolute是將原本在文檔流中所占的位置去掉,并以第一個非static定位的父元素進行定位,一般這樣我們都會用top,left等來控制位置,這就是絕對定位。
而relative這種定位方式則是,在原有的文檔流位置(也就是未設置POSITION屬性的時候的位置)基礎上移動。
所以當我們一般需要讓某些元素隨父元素移動而不會因為瀏覽器窗口大小變動而變形時,一般我們會把父元素定義為relative,而子元素定義為absolute,也就是說absolute是以第一個非static定位的父元素作為參考對象。
而一般我們會讓內容居中,讓margin:0 AUTO;就好了。
至于top和margin-top的區(qū)別,有些人可能分不清什么時候用,經(jīng)常會用margin-top來實現(xiàn)定位,事實上這種做法是錯誤的,margin它是外邊距,是占內容的,往往用這個來勉強實現(xiàn)定位都會使其他元素位置改變或導致其他效果,而這個效果并非我們想要的。
所以要認清absolute和relative的區(qū)別和用法,加上TOP LEFT RIGHT BOTTOM來定位就可以減少錯誤了。
順帶一提,CSS3之后多了挺多新屬性的,自己還沒一個個看,暫時記一下,background-size:cover;這個是本身就有還是后來才有的?我用DW8的時候并沒有這個屬性提示;
另外CSS3有很多屬性IE是不能支持的,即使有那也是9甚至10以上才能兼容,所以在寫的時候要注意瀏覽器的判斷,根據(jù)不同瀏覽器設計不同的樣式
<!--[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屬性的用法詳解(絕對定位和相對定位的混淆)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
- 這篇文章主要介紹了CSS中的 position屬性sticky的相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-12
css position屬性為absolute時其百分值的計算
這篇文章主要介紹了css position屬性為absolute時其百分值的計算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小2019-08-06- 這篇文章主要介紹了詳解CSS中position屬性介紹(新增sticky) 的相關資料,position的含義是指定位類型,取值類型可以有:static、relative、absolute、fixed、inherit和stic2018-12-17
- 這篇文章主要介紹了css中的position屬性值的探究(小結)的相關資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-25
淺談CSS中display/float/position屬性值的相互影響
下面小編就為大家?guī)硪黄獪\談CSS中display/float/position屬性值的相互影響。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-17- 這篇文章主要介紹了圖解CSS中position屬性的定位用法,重點講解了相對定位和絕對定位在頁面布局中的作用,需要的朋友可以參考下2016-04-28
- 這篇文章主要介紹了CSS的position屬性的完全解析,包括position和overflow在一些相似使用方面的對比,需要的朋友可以參考下2015-11-06
CSS樣式position屬性的一個小實例:z方向三層布局分析
使用CSS樣式中的position屬性實現(xiàn)z方向三層布局效果,本文甚是疑惑,于是乎搜集整理一番,曬出代碼和大家分享一下2012-12-07- 這篇文章主要介紹了CSS 中的position屬性實例詳解,定位屬性position有4個值,分別是靜態(tài)定位(static)、相對定位(relative)、絕對定位(absolute)和固定定位(fixed)2023-09-04