0

我有一个元素,在这种情况下是一个 li 并将其相对定位,然后有一个 :after 伪元素。它具有“”内容,绝对定位,具有位置和尺寸以及框阴影。我已将它的 z-index 设置为 -1,问题是它正在回落到我页面上最底部的 z-indexed 元素。我预计它会回落 1 个位置,以便在 li 后面。

我正在关注这个: http: //nicolasgallagher.com/css-drop-shadows-without-images/

有任何想法吗?如果我将伪的 z-index 设置为 1,那么它会跳到 li 的前面,我只希望它在它后面停一站。

4

1 回答 1

2

元素的 z-index 相对于最近的堆叠上下文定位它,不一定是父元素。此外,无论您是否指定负 z-index 值(显然在 FF2 中除外),都不能在堆叠上下文后面呈现任何元素。如果您打算让伪元素出现在 后面li,则作为 的祖先的元素li必须创建一个堆叠上下文。

现在,如果以下条件之一为真(取自MDN),则元素仅创建堆叠上下文:

  • 该元素是根元素 (HTML),
  • 它使用除 "auto" 以外的 z-index 值(绝对或相对)定位,
  • 它的不透明度值小于 1。(请参阅不透明度规范)

您可能已经注意到,显式指定z-index容器的属性值li(“auto”除外)可以解决问题。这是因为容器现在创建了自己的堆叠上下文,并且它是最近的堆叠上下文的所有后代将根据它们对于容器的z-index值进行排列。

于 2013-06-06T15:42:44.340 回答