很多朋友問過我absolute與relative怎么區(qū)分,怎么用?我們都知道absolute是絕對(duì)定位,relative是相對(duì)定位,但是這個(gè)絕對(duì)與相對(duì)是什么意思呢?絕對(duì)是什么地方的絕對(duì),相對(duì)又是相對(duì)于什么地方而言的呢?那他們又有什么樣的特性,可以做出什么樣的效果呢?關(guān)于兩者之間又有什么樣的技巧呢?下面我們就來一一解讀。
Absolute,CSS中的寫法是:position:absolute; TOP、RIGHT、BOTTOM、LEFT(下面簡稱TRBL)進(jìn)行定位,在沒有設(shè)定TRBL,默認(rèn)依據(jù)父級(jí)的做標(biāo)原始點(diǎn)為原始點(diǎn)。如果設(shè)定TRBL并且父級(jí)沒有設(shè)定position屬性,那么當(dāng)前的absolute則以瀏覽器左上角為原始點(diǎn)進(jìn)行定位,位置將由TRBL決定。
![](/d/20211017/5d580802fcbd8eb928fd0c35a8d59159.gif)
一般來講,網(wǎng)頁居中的話用Absolute就容易出錯(cuò),因?yàn)榫W(wǎng)頁一直是隨著分辨率的大小自動(dòng)適應(yīng)的,而Absolute則會(huì)以瀏覽器的左上角為原始點(diǎn),不會(huì)應(yīng)為分辨率的變化而變化位置。很多人出錯(cuò)就在于這點(diǎn)上出錯(cuò)。而網(wǎng)頁居左其特性與Relative很相似,但是還是有本質(zhì)的區(qū)別的。
Relative,CSS中的寫法是:position:relative; 他的意思是絕對(duì)相對(duì)定位,他是參照父級(jí)的原始點(diǎn)為原始點(diǎn),無父級(jí)則以BODY的原始點(diǎn)為原始點(diǎn),配合TRBL進(jìn)行定位,當(dāng)父級(jí)內(nèi)有padding等CSS屬性時(shí),當(dāng)前級(jí)的原始點(diǎn)則參照父級(jí)內(nèi)容區(qū)的原始點(diǎn)進(jìn)行定位。
![](/d/20211017/b860bf5f4fcf6ba29041954ca311dec1.gif)
有時(shí)我們還需要依靠z-index來設(shè)定容器的上下關(guān)系,數(shù)值越大越在最上面,數(shù)值范圍是自然數(shù)。當(dāng)然有一點(diǎn)要注意,父子關(guān)系是無法用z-index來設(shè)定上下關(guān)系的,一定是子級(jí)在上父級(jí)在下。