關於子元素的absolute定位

2021-07-22 21:44:01 字數 1033 閱讀 6406

關於子元素(如div)在父元素(如div)中的定位問題:

假設現有html**如下

class="div1">

class="div2>

test

想讓div2在div1中實現底部居中的效果,查詢資料發現關鍵步驟(css)是

div

.div2

在一篇文章看到以下內容,解釋得很清楚

position:absolute 元素相對最近的 position 為 absolute / relative / fixed 的祖先元素(包含塊)定位,如果沒有這樣的祖先元素,則以初始包含塊進行定位,而初始包含塊並不是以或進行定位的。

w3c關於包含塊及初始包含塊的定義

測試如下:

lang="en">

charset="utf-8">

position:absolutetitle>

head>

type="text/css">

html

body

divstyle>

body

divdiv>

body>

html>

body新增position:relative;

div新增 bottom:0;

效果如下:

html新增position:relative;

div新增 bottom:0;

效果如下:

body和html都不進行定位,div設定bottom:0;

此時效果如下:

所以,當絕對定位元素的祖先元素都沒有進行relative/absolute/fixed定位時,是相對於初始包含塊來定位的,而初始包含塊並不是以或進行定位的。

關於absolute和relative 的一些簡介

position absolute 他的意思是絕對定位,他是參照瀏覽器的左上角,配合top right bottom left 下面簡稱trbl 進行定位,在沒有設定trbl,預設依據父級的做標原始點為原始點。如果設定trbl並且父級沒有設定position屬性,那麼當前的absolute則以瀏覽器...

關於子元素的margin top影響父元素

來看看這個問題 子元素為什麼設定margin top會影響父元素的margin top。先把html,body,div的預設margin,padding設為0,再給父元素設定寬高,子元素設定寬高。然後又設定子元素的margin top為20px。效果如下 查了下,簡單來說是因為父元素沒有設定padd...

JS獲取元素的子元素

1li 2li 3li 4li ul 選取上面結構裡面的li ul li nth child 1 選取第乙個li ulli nth child odd 選取偶數 ulli nth child even 選取奇數 ulli nth child 3n 1 選取3n 1個元素 由於ie8不支援這種選擇器的...