不透明度與Z-Index:不可見的疊加
在Web 瀏覽器中對元素進行分層時,兩個關鍵屬性發揮作用:不透明度和z 索引。不透明度控制元素的透明度,而 z-index 確定其在堆疊順序中的位置。然而,我們發現了這些屬性之間令人驚訝的相互作用。
問題:完全衝突
考慮在一個「彈出視窗」頂部添加一個「彈出視窗」的場景海軍廣場。直覺上,人們會期望該正方形完全隱藏在彈出視窗下方。然而,當正方形的不透明度設定為低於 1(例如 0.3)時,正方形的一部分在彈出視窗下方仍然可見。
解開謎團
這種行為不是錯誤,而是網頁瀏覽器故意的設計選擇。根據 CSS 顏色模組,不透明度小於 1 的元素會建立一個新的堆疊上下文。因此,無論 z-index 值如何,此上下文之外的元素都無法在其中分層。
靜默堆疊上下文
預設情況下,非定位元素具有小於1 的不透明度被視為具有「z-index: 0」和「opacity: 1 」。這意味著它們將始終以相同的堆疊順序呈現,就像它們位於父堆疊上下文的底部一樣,無論它們的實際 z-index 值如何。
解決衝突
要糾正這一行為,只需避免對應完全隱藏的元素使用低於 1 的不透明度值即可。或者,透過使用「position:absolute」或「position:fixed」等CSS 屬性定位不透明度小於1 的元素,可以實現所需的堆疊順序,因為「z-index」屬性將控制內部的堆疊順序由不透明度建立的新堆疊上下文。
以上是不透明度與 Z-Index:為什麼 Z-Index 並不總是適用於半透明元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!