凍結 Header - daniel-qa/Vue GitHub Wiki

ex:

使用 fixed,overflow-y:hidden

&.fixed-space-box {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  overflow-y: hidden;
  z-index: 10;
}

overflow-y: hidden; → 垂直方向超出的內容全部隱藏,不允許滾動。

→ 這是關鍵:如果右側欄內容比 100vh 還高,就會被截掉,完全不能滾

top: 0 - 固定在視窗頂部

right: 0 - 固定在視窗右側


  • ex
.fixed-space-box {
  position: sticky !important;
  top: 0 !important;
  height: 100vh !important;
  overflow-y: auto !important;
  z-index: 10 !important; /* 確保在其他元素上方 */
}

!important 會強制該 CSS 屬性擁有最高優先級,無視正常的 CSS 優先級規則。


凍結 Header

<div class="auth-tab-wrap sticky-header">
  • css 設定
/* 基础 sticky 设置 */
.sticky-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--bg-color, #fff);
}
  • 註解版
/* 基础 sticky 设置 */
.sticky-header {
  /* 粘性定位:滚动时元素会"粘"在指定位置 */
  position: sticky;
  
  /* 距离容器顶部 0px 的位置开始粘性定位 */
  top: 0;
  
  /* 层级索引:确保元素显示在其他元素之上 */
  z-index: 1000;
  
  /* 背景色:使用CSS变量,fallback为白色 */
  /* var(--bg-color, #fff) = 优先使用--bg-color变量,如果未定义则使用#fff */
  background-color: var(--bg-color, #fff);
}
  • Position 的選項

fixed ✅(最霸道)

特性:定位基準幾乎永遠是 viewport(瀏覽器視窗),不隨著頁面內容滾動。

效果:滾動再多,它都穩穩地浮在視窗上。

比喻:像是把東西釘死在你眼球上,不管捲到哪裡都在那。

如果沒設 z-index,它可能還是被其他元素(有 stacking context 的)蓋掉。

static / relative → 腳踩地面,乖乖排隊。

absolute / fixed → 脫離地面,漂浮起來,但高低要看 z-index。

sticky → 原本在地面,但有條件時會黏在牆上。
Position 值是否在文檔流 z-index 是否生效 定位參考 使用場景
static ✅ 在文檔流中 ❌ 無效 - 預設狀態
relative ✅ 在文檔流中 ✅ 有效 自身原位置 最常用,不影響佈局
absolute ❌ 脫離文檔流 ✅ 有效 最近的定位祖先 精確定位
fixed ❌ 脫離文檔流 ✅ 有效 視窗 固定位置
sticky 部分脫離 ✅ 有效 視窗 黏性定位