CSS 絕對定位

2021-09-19 12:17:22 字數 1684 閱讀 2194

絕對定位比相對定位更靈活

脫標絕對定位的盒子是脫離標準文件流的,所以所有的標準文件流的性質,絕對定位之後都不遵守了。絕對定位後,標籤就不區分行內元素,塊級元素了,不需要display: block;就可以設定寬高了。

span

參考點

如果文件可滾動,絕對定位元素會隨著它滾動,因為元素最終會相對於正常流的某一部分定位。當position取值為absolute時,可以將元素的定位模式設定為絕對定位。

絕對定位的參考點如果用top描述,就是頁面的左上角,而不是瀏覽器的左上角。

如果用bottom描述,那麼就是瀏覽器首屏視窗尺寸,對應的頁面的左下角。

以盒子為參考點

乙個絕對定位的元素,如果父輩元素**現了定位元素,那麼將以父輩這個元素為參考點。

此時p的位置將以頁面的左上角為40px,以瀏覽器當前螢幕為準對齊。

但是一旦給父輩加了相對定位,即:

div

此時將以父輩為參考,位置為父輩盒子中的向下40px,向右40px。

聽最近的已經定位的祖先元素的:

相對定位

沒有定位

絕對定位,則將以box1為參考,因為box2沒有定位,box1就是最近的父輩元素

相對定位

相對定位

絕對定位,則將以box2為參考,因為box2是最近的父輩元素

不一定是相對定位,任何定位都可以作為參考點

絕對定位

絕對定位,則將以div作為參考點,因為父親定位了。

子絕父絕、子絕父相、子絕父固,都是可以給兒子定位的。但是,工程上子絕、父絕,沒有乙個盒子在標準流裡面了,所以頁面就不穩固,沒有任何實戰用途。工程上,「子絕父相」有意義,父親沒有脫標,兒子脫標在父親的範圍裡面移動。

class

="box1"

>

絕對定位

class

="box2"

>

相對定位

class

="box3"

>

沒有定位

>

p>

絕對定位 將以box2為參考單位

div>

div>

div>

絕對定位的盒子居中

絕對定位之後所有標準流的規則都不適用了,所以margin: 0 auto; 失效。

div
塊級元素不寫寬則自動撐滿,

但是如果絕對定位了:

div
則寬度失效了。

所以寬度可以寫稱width: 100%;

標準文件流中此盒子可以居中:

div
但是如果position: absolute; 則不能通過標準文件流居中。

則通過以下設定可以居中:left 50%父盒子一半的大小,再走自己外邊距負的一半值margin-left

div

CSS 絕對定位

設定為絕對定位的元素框從文件流完全刪除,並相對於其包含塊定位,包含塊可能是文件中的另乙個元素或者是初始包含塊。元素原先在正常文件流中所佔的空間會關閉,就好像該元素原來不存在一樣。元素定位後生成乙個塊級框,而不論原來它在正常流中生成何種型別的框。絕對定位的元素的位置相對於最近的已定位祖先元素 如果元素...

CSS 絕對定位

設定為絕對定位的元素框從文件流完全刪除,並相對於其包含塊定位,包含塊可能是文件中的另乙個元素或者是初始包含塊。元素原先在正常文件流中所佔的空間會關閉,就好像該元素原來不存在一樣。元素定位後生成乙個塊級框,而不論原來它在正常流中生成何種型別的框。絕對定位使元素的位置與文件流無關,因此不佔據空間。這一點...

CSS 絕對定位

設定為絕對定位的元素框從文件流完全刪除,並相對於其包含塊定位,包含塊可能是文件中的另乙個元素或者是初始包含塊。元素原先在正常文件流中所佔的空間會關閉,就好像該元素原來不存在一樣。元素定位後生成乙個塊級框,而不論原來它在正常流中生成何種型別的框。css 絕對定位 絕對定位使元素的位置與文件流無關,因此...