在 CSS 中,我們可以使用 position 屬性來控制 HTML 元素的定位方式。常用的屬性值有 static、relative、absolute、fixed 和 sticky,此外還有一個值叫做 inherit,它可以使 HTML 元素繼承其父元素的定位屬性。
每一個值都有其獨特的作用。比如,static 是默認值,表示元素遵循文檔流,按照自然的位置排列;relative 用于相對定位,使元素相對于其原有位置移動一定的距離,但不會影響其他元素的位置;absolute 用于絕對定位,將元素從文檔流中取出,相對于其含有相對定位的祖先元素或最初的包含塊(根元素)進行定位;fixed 用于固定定位,使元素相對于瀏覽器視窗固定在某一個位置,無論頁面滾動到哪里,元素位置不變;sticky 可以看作是 relative 和 fixed 的混合,元素先相對于其正常位置固定,當滾動到指定閾值時則變為固定定位。
/* 以下是示例代碼 */ /* 對于靜態定位,無需顯式指定 */ div.static { position: static; } /* 相對定位,右移 20px,下移 10px */ div.relative { position: relative; left: 20px; top: 10px; } /* 絕對定位,相對于最近的已定位祖先元素 */ div.absolute { position: absolute; right: 0px; bottom: 0px; } /* 固定定位,位于瀏覽器窗口底部中間 */ div.fixed { position: fixed; left: 50%; bottom: 0px; transform: translateX(-50%); } /* 粘性定位,當滾動到 top: 60px 時固定在屏幕上 */ div.sticky { position: sticky; top: 60px; }