CSS否定z-index:这是什么意思?

Her*_*usz 14 css z-index

如果我在元素的z-index属性中添加负整数值,那么根据标准的预期效果是什么?

我搜索的答案,但只找到了这个:
https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
"负值降低优先"不为我意味着什么.

sal*_*llf 54

接受的答案是正确的,但并不完全正确。

首先,z-index 的初始值是auto,而不是0

当您分配一个元素z-index: 0(或任何其他整数)时,您正在创建一个新的堆栈上下文z-index: auto不会创建堆叠上下文。这很重要,因为父 withauto将出现在子 with 前面-1,而父 with0将出现在子 with 后面-1(参见代码段)。

每个堆叠上下文将根据堆叠顺序对其内容进行排序

同样重要的是要注意,z-index仅适用于定位元素。定位的元素比最初的任何其他position: static-所以relativeabsolute

此外,您应该知道对某些 css 属性(如filtertransform和 )的更改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;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

附加信息

创建堆叠上下文的 CSS 属性

了解不透明度如何影响堆叠上下文

阅读另一篇关于堆叠顺序的深入文章

堆叠顺序

  • 更好的答案 (2认同)

Aar*_*ron 20

如果0是默认的z-index,则在大多数元素下将呈现具有负z-index的元素,除非它们具有更低的z-index.

  • @Herbertusz是的,它会是一样的.现在想象你有500个元素,并希望其中一个元素属于其他元素.您是否愿意将所有其他设置为z-index = 1,或者只设置为z-index = -1? (4认同)
  • 所以有什么稀奇的吗?我的意思是,如果我有 3 个 z-index -1, 0, 1 的元素,如果我增加所有这些元素,例如增加到 1, 2, 3 会是一样的吗? (3认同)
  • 默认 z 索引是“auto”而不是“0”。请参阅下面我的回答以获得更清晰的信息。 (3认同)