如果我将负整数值添加到元素的z-index属性中,根据标准预期的效果是什么?
我搜索了答案,但只找到了这个:
https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
对于我来说,“将负值降低优先级”的意思并不清楚。
如果我将负整数值添加到元素的z-index属性中,根据标准预期的效果是什么?
我搜索了答案,但只找到了这个:
https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
对于我来说,“将负值降低优先级”的意思并不清楚。
被接受的答案是正确的方向,但并非完全正确。
首先,z-index的初始值为auto
而不是0
。
当您为元素分配z-index: 0
(或任何其他整数)时,您正在创建一个新的堆叠上下文。 z-index: auto
不会创建堆叠上下文。这很重要,因为具有auto
的父级将出现在具有-1
的子级前面,但具有0
的父级将出现在具有-1
的子级后面(请参见片段)。
每个堆叠上下文将根据堆叠顺序对其内容进行排序。
需要注意的是,z-index
只对定位元素有效。定位元素是指除了初始 position: static
之外的任何元素 - 因此包括 relative
、absolute
等。
此外,您还应该知道,某些 CSS 属性的更改,例如 filter
、transform
和 opacity
,也可以创建新的堆叠上下文。有关更多信息,请参见下面的资源。
p {
position: absolute;
top: 100%;
width: 200px;
margin: 0
}
.container {
width: 200px;
height: 200px;
display: inline-block;
background: none;
}
.box {
position: relative;
background: lightgrey;
width: 100px;
height: 100px;
padding: 15px;
}
.red {
background: lightcoral;
}
.z-1 {
z-index: -1;
}
.z0 {
z-index: 0;
}
<div class="container">
<div class="box">
z auto (initial)
<div class="box red z-1">z -1</div>
</div>
<p>Parent: auto / Child: -1</p>
</div>
<div class="container">
<div class="box z0">
z 0
<div class="box red z-1">z -1</div>
</div>
<p>Parent: 0 / Child: -1</p>
</div>
附加信息
一个带有负 z-index 值的元素将会被渲染在大多数其他元素下方,除非它们具有更低的 z-index 值。
auto
而不是 0
。请参考我的回答以获得更多的解释。 - sallf