Back to Blog

CSS Position 屬性:static, relative, absolute 與 fixed 的詳解

在 CSS 中,position 屬性用於指定元素的定位方式。它可以讓您將元素精確地放置在頁面的任何位置。position 屬性有五個主要的值:staticrelativeabsolutefixedsticky

#position: static

staticposition 屬性的預設值。static 定位的元素會遵循正常的文檔流,toprightbottomleftz-index 屬性對其無效。

範例:

<div style="position: static; background-color: lightblue;">這是一個 static 定位的元素</div>

#position: relative

relative 定位的元素會相對於其正常位置進行定位。您可以使用 toprightbottomleft 屬性來移動它,但它原本在文檔流中所佔據的空間仍然會被保留。

範例:

<div style="position: relative; top: 20px; left: 20px; background-color: lightblue;">這是一個 relative 定位的元素</div>

#position: absolute

absolute 定位的元素會完全脫離文檔流,並相對於其最近的非 static 定位的祖先元素進行定位。如果沒有這樣的祖先元素,它會相對於 <html> 元素進行定位。

範例:

<div style="position: relative; width: 200px; height: 200px; border: 1px solid black;">
  <div style="position: absolute; top: 20px; right: 20px; width: 100px; height: 100px; background-color: lightblue;">這是一個 absolute 定位的元素</div>
</div>

#position: fixed

fixed 定位的元素會相對於瀏覽器視窗進行定位,即使頁面滾動,它也會保持在相同的位置。fixed 定位的元素也會脫離文檔流。

範例:

<div style="position: fixed; top: 20px; right: 20px; background-color: lightblue;">這是一個 fixed 定位的元素</div>

#總結

position 定位相對於 脫離文檔流 top, right, bottom, left z-index
static 正常文檔流 無效 無效
relative 自身正常位置 有效 有效
absolute 最近的非 static 祖先 有效 有效
fixed 瀏覽器視窗 有效 有效