4 回答

TA貢獻(xiàn)319條經(jīng)驗(yàn) 獲得超234個(gè)贊
其實(shí)絕對(duì)定位absolute的參照對(duì)象是“離它最近的已定位的祖先元素”,這句話里有兩個(gè)關(guān)鍵,
一個(gè)是“離它最近的祖先元素”,意思是那個(gè)參照元素不一定是父元素,也可以是它的爺爺、爺爺?shù)臓敔數(shù)鹊?,如果它的祖先里同時(shí)有2個(gè)及以上的定位元素,就參照離它最近的一個(gè)元素定位
還有一個(gè)是“已定位”,這個(gè)定位也不一定非要是相對(duì)定位,也可以是絕對(duì)定位,為什么一般都是用相對(duì)定位呢,因?yàn)橄鄬?duì)定位的特性是雖然它定位了,就算給了偏移量它離開了原來的地方,但是它原來占的地方也不會(huì)讓出來的,這樣的好處是原來在它周圍的其他元素不會(huì)因?yàn)樗碾x開而改變位置而使頁面亂套,所以用相對(duì)定位是非常合適的(如果你另有其他需要,祖先元素絕對(duì)定位也不是不可以)

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超2個(gè)贊
理解是對(duì)的,相對(duì)定位和絕對(duì)定位的區(qū)別就是一個(gè)是脫離了文檔流,一個(gè)沒有脫離文檔流,相對(duì)定位是相對(duì)于自身定位,而絕對(duì)定位是相對(duì)于自身的最近的父輩有絕對(duì)定位或相對(duì)定位的元素進(jìn)行定位.,要是父輩都沒有絕對(duì)定位或者相對(duì)定位,就會(huì)相對(duì)于根元素進(jìn)行(body,html)進(jìn)行定位..當(dāng)父級(jí)設(shè)置了絕對(duì)定位之后,子級(jí)的絕對(duì)定位也會(huì)受父級(jí)絕對(duì)定位的影響..所以一般為了讓父級(jí)元素不懂,一幫都用父級(jí)元素進(jìn)行相對(duì)定位,所以你的理解是正確的.

TA貢獻(xiàn)20條經(jīng)驗(yàn) 獲得超29個(gè)贊
后面元素會(huì)受到影響。但是后面元素的定位受到到影響。我不知道怎么理解你。其實(shí)你多做做多看看就知道了。我一開始也不是特別明白。用relative,absolute去設(shè)置父輩元素時(shí),它的子元素設(shè)置absolute時(shí)就是相對(duì)父元素偏移,下面針對(duì)你的問題一一分析吧。
1“我試過將設(shè)置定位的元素及其父輩元素都設(shè)定為absolute,如圖所示,她們與其他父輩的兄弟元素不會(huì)重疊”父輩absolute,子元素absolute,子元素是相對(duì)已經(jīng)定位的父元素定位。只要父元素有定位屬性,子元素absolute都會(huì)相對(duì)父元素定位,如果父元素沒有定位屬性,則子元素absolute相對(duì)html(也就是可視窗口)定位。
2“當(dāng)我把box3和box4都設(shè)為absolute時(shí),任務(wù)部分與觀察部分就重疊起來”如果他們的父級(jí)沒有定位,則他們是相對(duì)窗口也即使html定位的。若位移距離一樣就會(huì)重疊(看不到你的html代碼。不好說)
3“只有定位脫離了文檔流,那么后面元素的定位就會(huì)收到影響”搞清楚他們相對(duì)定位的關(guān)系。就OK了。不存在這個(gè)東東。如果他們都是absolute屬性,并且把位移距離都設(shè)置0。四個(gè)會(huì)重疊在一起。因?yàn)樗麄兌际窍鄬?duì)HTML定位的。
最好把代碼都貼出來。這個(gè)定位關(guān)系你去網(wǎng)上搜搜吧。弄懂就OK了。多做做,多實(shí)驗(yàn)。
希望能幫到你。哈哈。頭都大了,看不見你的HTML代碼。本來不想回答了??墒谴蛄诉@么多字。不忍心。

TA貢獻(xiàn)35條經(jīng)驗(yàn) 獲得超41個(gè)贊
理解是對(duì)的。absolute會(huì)脫離文檔流,而relative不會(huì)。你把box3和box4都設(shè)成absolute,整個(gè)任務(wù)部分不占據(jù)文檔流,下面的觀察部分?jǐn)D上來了,所以重疊在一起。而box3設(shè)置成relative,就會(huì)依然占據(jù)文檔流位置。
而同樣脫離文檔流,float元素卻會(huì)依然占據(jù)父元素中的位置,對(duì)兄弟元素造成影響。但他實(shí)際上已經(jīng)脫離文檔流了,不會(huì)撐起父元素高度,這個(gè)要注意。
absolute一般和relative配合使用,但是也可單獨(dú)使用。對(duì)box3不作處理,單獨(dú)對(duì)box4設(shè)置absolute,box4會(huì)脫離文檔流,但位置還是原來的位置。這時(shí)可以用margin來移動(dòng)box4的位置。如果用top,left,就會(huì)向上查找relative,找不到就相對(duì)于body定位。
關(guān)于這些,建議看看慕課上張?chǎng)涡翊笊竦腸ss深入理解系列課程,看完會(huì)很有收獲。
添加回答
舉報(bào)