首页 > web前端 > css教程 > 正文

## 使用 `z-index` 时如何将 `::before` 伪元素定位在其父元素后面?

Patricia Arquette
发布: 2024-10-24 20:59:02
原创
105 人浏览过

## How to Position a `::before` Pseudo-Element Behind Its Parent When Using `z-index`?

Before 伪元素的 Z 索引难题

在父元素中使用 before 伪元素时,必须解决其问题定位行为。默认情况下,伪元素位于其父元素内部。

但是,为父元素分配 z 索引会创建一个新的堆叠上下文,从而隔离其内容。因此,由于堆叠上下文边界,before 伪元素即使 z 索引为负,也无法出现在父元素后面。

要解决此问题,请考虑以下解决方案:

  1. 单独的元素层次结构: 在标题元素之前添加另一个元素。这会创建一个自然的堆叠顺序,其中新的父元素可以被赋予低于标题的 z-index,从而允许之前的伪元素出现在其后面。
  2. Z-Index 嵌套: 虽然不太推荐,但您可以对伪元素使用负 z 索引值,对父元素使用正值,以在同一堆叠上下文中创建所需的堆叠顺序。但是,这种方法可能会导致更复杂的代码和潜在的跨浏览器兼容性问题。

示例:

<code class="css"><div class="wrapper">
  <header>
    content...
    <span class="pseudo-element">Before content...</span>
  </header>
</div>

.wrapper {
  position: relative;
  z-index: 0;
}

header {
  position: relative;
  background: yellow;
  height: 100px;
  width: 100px;
  z-index: 1;
}

.pseudo-element {
  position: absolute;
  background: red;
  height: 100px;
  width: 100px;
  top: 25px;
  left: 25px;
  z-index: 0;
}</code>
登录后复制

以上是## 使用 `z-index` 时如何将 `::before` 伪元素定位在其父元素后面?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!