跳至內容
Astera Technology

z-index 寫再大,也可能跳不出父層

用真正重疊方塊和命中測試,查看內層 z-index 受父層限制的結果。

重疊位置由綠色同級面板蓋住淺色內層面板。

下載完整個案資料及參考答案 ↓

先看這個例子

low 父層的 z-index 是 1,child 內層是 9999,重疊的 high 同級則是 2。父層脈絡仍較低,內層不能靠大數字越過同級。

輸入與瀏覽器原生結果
情況輸入或查看方法結果與意思
父層脈絡讀 low z-index1
內層子元素讀 child z-index9999,仍在父層脈絡內
重疊命中在 stage 中心查 elementFromPoint最上層是 high
下載可編輯 CSV ↓

瀏覽器怎樣處理

堆疊脈絡相對同級時是一個整體。內層 z-index 只在整體之內排序,不會跳出去。中心命中測試是瀏覽器實際觀察,截圖底色只作輔助。

提高父層,結果才會改變

對照把 low 從 1 改成 3,child 仍為 9999,high 仍為 2。

反例原始碼,請另開例子核對
<style>body{margin:8px}</style>
<style>.stage{position:relative;width:200px;height:100px}.low{position:absolute;inset:0;z-index:3}.child{position:absolute;inset:0;z-index:9999;background:#e3efe8}.high{position:absolute;inset:20px;z-index:2;background:#23715d;color:white}</style><section class="stage"><section class="low"><section class="child">內層面板</section></section><section class="high">同級面板</section></section>

中心現在命中 child。改父層脈絡,才改變同級排序;不需要繼續加大子元素數字。

試着修正

正例只把 child9999 改成 99999,會蓋過 high2 嗎?

查看參考答案

不會,low 父層仍是脈絡 1,在同級脈絡 2 之下。

  • 查完整堆疊上層關係。
  • 在量度出的重疊位置記命中結果。

原始例子檔案

相關資源