首页 > web前端 > css教程 > 为什么 z-index 不能与固定定位元素一起使用?

为什么 z-index 不能与固定定位元素一起使用?

Patricia Arquette
发布: 2025-01-03 07:18:42
原创
774 人浏览过

Why Doesn't z-index Work with Fixed Positioning Elements?

z-index 不适用于固定定位:揭开原因

固定定位是创建保留在原位的元素的强大工具无论滚动如何,屏幕都会显示。但是,它有时会干扰 z-index 属性,该属性控制元素的堆叠顺序。

为了说明这一点,请考虑以下代码片段:

#over {
  width: 600px;
  z-index: 10;
}

#under {
  position: fixed;
  top: 5px;
  width: 420px;
  left: 20px;
  border: 1px solid;
  height: 10%;
  background: #fff;
  z-index: 1;
}
登录后复制

正如您所期望的, #over 元素应该出现在 #under 元素上方,因为它具有更高的 z-index。然而,在这种情况下,#under 仍然覆盖#over。为什么会发生这种情况?

答案在于#over 的默认定位。默认情况下,元素具有静态定位,这意味着它们在文档流中占据其自然位置。另一方面,固定定位元素会从正常流中移除,并放置在相对于页面视口的特定坐标处。

在这种情况下,#under 的固定位置将其带出正常流,因此,它的 z-index 与静态定位的元素无关。为了让#under出现在#over后面,我们需要将#over的定位设置为relative。这会将 #over 放置在文档流中,但允许它根据指定的 z-index 移动其位置。

这是固定的代码片段:

#over {
  width: 600px;
  z-index: 10;
  position: relative;
}

#under {
  position: fixed;
  top: 14px;
  width: 415px;
  left: 53px;
  border: 1px solid;
  height: 10%;
  background: #f0f;
  z-index: 1;
}
登录后复制

现在,#under元素按预期出现在 #over 下面。请记住,为了使 z-index 正常工作,元素必须绝对或相对定位。

以上是为什么 z-index 不能与固定定位元素一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板