You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS position:sticky粘性元素滚动穿透其他元素显透明的解决方法

解决position:sticky元素滚动时被其他元素覆盖的问题

你遇到的不是透明度问题,而是元素堆叠层级的问题——你的nav-menu元素z-index层级低于下方的li元素,滚动时被li覆盖,视觉上看起来像是“透明”了,设置opacity:1自然没用。

解决办法很直接:

  • 给nav-menu设置足够高的z-index值,确保它在堆叠顺序中位于li元素之上:
.nav-menu {
  width: 400px;
  height: 62px;
  left: 0px;
  top: 0px;
  position: sticky;
  background-color: #0c5061;
  z-index: 999; /* 调整这个值,只要比li元素的z-index高即可 */
}

如果设置z-index后问题仍存在,检查以下两点:

  1. 检查nav-menu的父元素是否设置了transform、filter或perspective属性——这些属性会创建新的堆叠上下文,导致子元素的z-index仅在该上下文内生效,无法覆盖外部元素。如果有这类属性,要么移除,要么调整父元素的堆叠层级。
  2. 确认li元素是否设置了position(如relative/absolute)和z-index,如果有的话,确保nav-menu的z-index数值比它们更高。

内容的提问来源于stack exchange,提问作者bugsmasher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:47:12