3.19 排版 - 關於定位(position)
一個元素,在版面中的位置,就叫做定位,有幾種基本的定位型態,可設定的值有:
static:這是所有元素的預設值。
fixed:固定定位,相對於螢幕。
relative:相對定位。相對於自己原來的位置。
absolute:絕對定位。一直往父元素找,直到找到第一個
非 static
的元素,那就相對於它來定位。sticky:假設搭配
top: 0;
,螢幕上方未碰觸到該元素時,會在原位置;碰觸到時,置頂。而置頂的期間,取決於父元素高度範圍。
固定定位:fixed
不論使用者滑動到頁面的哪個區域, fixed 元素都會固定在螢幕的指定位置,需搭配 top、right、bottom、left 四個屬性,來決定要固定在哪個位置。例:
部份 HTML:
CSS:
結果:
範例:
相對定位:relative
相對於自己原來的位置,該如何位移,一樣搭配 top、right、bottom、left。有以下兩個特性:
元素位移之後,不影響周圍的元素。
元素位移之後,若超出螢幕,會造成頁面上出現水平捲軸。
範例:
絕對定位:absolute
當一個元素設定成 absolute 的定位模式,就會一直往父層找,直到「找到第一個父元素,其 position 的定位模式不是預設的 static 即可,即相對於它來做定位」。例:
HTML:
CSS:
結果:
範例:
sticky 定位模式
當一個元素 position
設定成 sticky
之後,通常會再搭配 top
屬性(也可以是其它的 right、bottom、left,但 top 較常用),來決定當螢幕的上方,距離元素上方多少距離時,就定住。例:
關於 z-index
元素當中如果在同一層,定位上有重疊的狀態,可以使用 z-index
,設定正整數來決定元素的疊層順序。愈大的值,代表會出現在愈上方。
例:
練習
提供 html 如下:
練習加上 CSS 後,呈現結果如下:
參考作法:
Last updated