CSS | Position
2022-01-21
整理 CSS Position 的使用說明,藉由 Relative, Absolute, Fixed 可以達成圖層位移、堆疊的視覺效果,也可以設置懸浮固定的 sidebar 以及回到置頂的 button,藉由 sticky 則可以實作捲動跟隨著 header。
Position
- Static
 - 預設的位置類別,不受 top, left , right , bottom 以及 z-index 的影響。
 - Relative
 - 可以相對於元素的 Static 位置進行位移。
 - Absolute
 - 元素會被移出 Flow,不佔據任何空間,Absolute 會尋找最近非 Static 的父元素 (Relatvie, Absolute, Fixed, Sticky) 並以父元素的左上角為基準點,進行位移。
 - Fixed
 - 元素會被移出 Flow,並以整個 ViewPort 的左上角作為基準點,不隨著螢幕捲動而改變,會固定在螢幕的一隅。
 - Sticky
 - 元素會保持原本的 Flow,但根據設定的位移,會保持在父元素捲動範圍內附著在固定的位置,例如 Sticky Header 的效果。
 
Div 堆疊效果
利用 Relative 或者 Absolute 來達成,如果要使用 Absolute 記得要為父元素安排一個非 Static Position。
Position Source Code | css.sdwh
Sticky Header
<div>
  <div class="sticky">I'm Sticky..</div>
  Lorem ipsum dolor sit amet consectetur adipisicing elit. Illo, 
  iste consectetur reiciendis recusandae maiores saepe 
  officiis commodi odio harum magnam assumenda 
  itaque dolore quam, magni ullam deserunt quis! Nobis, tenetur!
</div>
.sticky {
  position: sticky;
  top: 0px;
  background-color: yellow;
}