Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Z索引不适用于绝对定位元素(尽管已移除不透明度等)_Css_Css Position_Z Index - Fatal编程技术网

Css Z索引不适用于绝对定位元素(尽管已移除不透明度等)

Css Z索引不适用于绝对定位元素(尽管已移除不透明度等),css,css-position,z-index,Css,Css Position,Z Index,在阅读了一个绝对定位的子菜单(它不会出现在桌面断点上的页面内容上方)之后,我剥离了文章中标识的所有有问题的CSS,但没有任何效果。下面HTML中的子菜单将不会出现在页面内容上方,尽管应用了z索引的绝对位置。任何对这个问题有进一步想法的人,请告诉我——我很困惑 <nav id="nav-main" role="navigation"> <ul class="site-nav site-nav__main"> <li class="nav__menuitem

在阅读了一个绝对定位的子菜单(它不会出现在桌面断点上的页面内容上方)之后,我剥离了文章中标识的所有有问题的CSS,但没有任何效果。下面HTML中的子菜单将不会出现在页面内容上方,尽管应用了z索引的绝对位置。任何对这个问题有进一步想法的人,请告诉我——我很困惑

<nav id="nav-main" role="navigation">
  <ul class="site-nav site-nav__main">
    <li class="nav__menuitem nav__menuitem--main first level1"><a class="nav__menulink nav__menulink--main transition" href="my-link">my-link</a></li>
    <li id="subNav__parent" class="nav__menuitem nav__menuitem--parent transition clearfix level1">SubNav Toggle Label<span class="subNav__toggle">+</span>
      <ul class="subNav">
        <li class="nav__menuitem nav__menuitem--subnav first level2">
          <a class="nav__menulink nav__menulink--main transition" href="my-link2">my-link2</a>
        </li>
        <li class="nav__menuitem nav__menuitem--subnav last level2">
          <a class="nav__menulink nav__menulink--main transition" href="my-link3">my-link3</a>
        </li>
      </ul>
    </li>
  </ul>
</nav>

.site-nav {
  margin: 0;
  padding-left: 1rem;
  padding-right: 1rem;
  list-style-type: none;
  transition: .2s ease-out; /*related to a different transition; not relevant to the issue being 
    posted about*/
  transform: translateY(0%);
}

// SUBNAV

.nav__menuitem--parent { /*this is the click element used to open / close the sub-menu
  position: relative;
  cursor: pointer;
}

.subNav {
  position: absolute;
  z-index: 10;
  margin: 1rem auto 0 auto;
  padding: 1rem 0;
  width: 250px;
  visibility: 0;
}

.subNav.open {
  transition-property: visibility, max-height;
  transition-duration: .5s;
  transition-timing-function: ease-out;
  max-height: 500px; /* approximate max height */
  visibility: 0;
}

  • subNav切换标签+
.场地导航{ 保证金:0; 左:1rem; 右侧填充:1rem; 列表样式类型:无; 转换:.2s缓解;/*与其他转换相关;与正在处理的问题无关 张贴*/ 转化:translateY(0%); } //亚纳夫 .nav_u_menuitem--parent{/*这是用于打开/关闭子菜单的click元素 位置:相对位置; 光标:指针; } .subNav{ 位置:绝对位置; z指数:10; 保证金:1rem自动0自动; 填充:1rem0; 宽度:250px; 能见度:0; } .subNav.open{ 过渡属性:可见性、最大高度; 过渡时间:.5s; 过渡定时功能:缓解; 最大高度:500px;/*近似最大高度*/ 能见度:0; }
指定位置时:绝对;项目将相对于其父项进行定位。您需要指定top:0或类似名称以覆盖此选项

这里有一个快速的提琴来说明

。父导航{
背景色:红色;
位置:绝对位置;
排名:0;
宽度:100%;
}
.副导航父级{
背景颜色:蓝色;
位置:相对位置;
}
/*低于子导航父级10px*/
.副导航儿童{
背景色:青色;
位置:绝对位置;
排名前10名;
左:0;
z指数:99;
宽度:100%;
}

这是我的网页内容
页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

页面正文页面正文

  • 子导航父级
    • 儿童1
    • 儿童2

我实现的解决方案没有解决这样一个事实,即编写的HTML和CSS应该可以正常工作,但是FWIW,我对header元素进行了z索引,并将其定位在页面内容的包装元素之上。由于子菜单是全局导航的子菜单,而全局导航又是header元素的子菜单,因此它的堆栈顺序相当于header的每个z索引默认值auto。

我认为这并不能解决这个问题。需要明确的是,当打开状态处于活动状态时,菜单将显示在相对于其父菜单应该显示的位置,并且是可见的。堆叠问题与html中稍后出现的页面内容有关。如果是这种情况,那么如果我理解正确,以后的内容必须具有更高的z索引。我已经更新了代码片段,以说明nav位于页面主体divYes之上,这是有意义的,但它没有-没有为页面内容的包装应用z索引,这是html中标题之后的内容。正如我发布的解决方案中提到的,我最终按照堆栈顺序向上移动了标题。这就解决了这个问题。你的CSS中是否真的有
//SUBNAV
,因为这是无效的CSS注释语法,可能会影响结果CSS是使用SCSS生成的,而这种格式是有效的。我加入评论只是为了在CSS目标之间进行划分。谢谢