HTML
<div class="container">
<div class="box1">
</div>
<button>parent-button</button>
</div>
CSS
.container {
width: 400px;
height: 400px;
background-color: burlywood;
position: relative;
z-index:0;
}
.box1 {
width: 400px;
height: 400px;
position: absolute;
top: 0;
z-index:-1;
background-color: rgba(0, 0, 0,0.5);
}
.container button:hover{
background-color:red;
}
副上code pen 問題一的效果
https://codepen.io/byssjbij-the-encoder/pen/ZERPNpN
實際上我是想利用子層設置background-color:RGBA 達到遮罩的效果
只是我不清楚為什麼是這樣設
問題1想問為什麼z-index這樣有遮罩效果且button有效果(可以按或添加hover)
.container{
z-index:0
}
.box1{
z-index:-1
}
**問題2.**設成這樣"有遮罩效果"但是button卻被遮照蓋住了完全不能使用button
.container{
z-index:1
}
.box1{
z-index:2
}
**問題3.**為什麼將CSS設成底下這樣button有出現在"遮罩之上"
但是卻失效了(沒辦法按或hover)?
.container{
z-index:-1;
}
.box1{
z-index:-1;
}
z-index 要了解圖層的概念
還要注意 父子層
這個頁面範例還滿多的
https://kumo.tw/article.php?id=44
問題一 : 其實你的box 沒有蓋過 container 因為他是父層 而且設定了z-index
父層添加 z-index 子層的z-index 負數會直接失效
問題二 : 你成功用box1遮蔽的button 這樣
問題三 :container 直接沉於頁面之下 button 沒有position 跟著沉
我的寫法
父層不定z-index
子層 button 跟box1 來設定z-index 來處理
openAI 可怕的回答
設定元素的 z-index 值可以決定元素在頁面上的顯示順序。如果兩個元素的 z-index 值不同,那麼具有較大 z-index 值的元素會顯示在具有較小 z-index 值的元素的上面。
如果父元素的 z-index 值比子元素的 z-index 值要大,那麼即使子元素的 z-index 值是負數,它也會被父元素的 z-index 值所覆蓋。這就是為什麼在父元素样式里加上 z-index 值時,子元素的 z-index 的负数值會失效,状态變為可見的原因。
如果您想要讓子元素的 z-index 的负数值生效,您可以將父元素的 z-index 值設為較小的值,例如 0 或負數。這樣子元素的 z-index 值就能夠覆蓋父元素的 z-index 值,並顯示在父元素的下面。
感謝回覆,你的處理辦法很值觀謝謝。
問題一所以當父層設定了z-index: 不管子層設定什麼都會失效。
問題三所以已圖層的概念來看的話會是
container => box =>button 這樣子嗎?
比較好奇的是為什麼button顯示出來了但還是失效了