如何使用 z-index 管理交错的图层

How to manage layers interleaved using z-index

我在管理多个交错层时遇到一些困难。

I reproduced my issue in this Plunker example

  <body>
<header>
  <nav class="navbar">
      <ul class="navbar-nav">
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Dropdown link
          </a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
            <a class="dropdown-item" href="#">Action</a>
            <a class="dropdown-item" href="#">Another action</a>
            <a class="dropdown-item" href="#">Something else here</a>
          </div>
        </li>
      </ul>
  </nav>
</header>
<nav class="navbar row filter">
  <form class="form-inline">
    <input name="search" class="form-control" type="text" size="30"/>
  </form>
</nav>

header {
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100%;
  position: relative;
  height: 80px;
  z-index: 100;
}

header .navbar {
  padding:0;
}

.dropdown-menu {
  z-index:300;
}

.filter {
  margin-top:-20px;
  background-color: black;
}

.filter form {
 z-index:200;
}

如果我从最远的元素开始,我应该有:

  1. 过滤栏容器
  2. header 容器
  3. 过滤栏内容(输入)
  4. header 内容(菜单)

所以我指定:

我不是css方面的专家,也许有更好的方法来实现这个设计,但我不明白为什么下拉菜单没有覆盖所有组件?

您需要从 header 中删除 z-index 并将 z-index 添加到导航栏,如下所示

header {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAABkCAYAAAB+UVSPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAEZUlEQVR4Xu3XIY5dRxiE0UfihRhkA/YGQgwshWRDExhsltVez8iGTbuqwDnSp3m6/Nd0vR4AIO/f/37/AKrcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYpwBAgANHj2wwS3GGSAA0ODRAxvcYtzr8x+fHkmSlO356+/n+5cvksp93OLpRnWv1/Pn10eSJEmSEhkgkiRJkmIZIJIkSZJiGSCSJEmSYhkgkiRJkmIZIJIkSZJiGSCSJEmSYhkgkiRJkmIZIJIkSZJiGSCSJEmSYhkgkiRJkmIZIJIkSZJiGSCSJEmSYhkgkiRJkmIZIJIkSZJiGSCSJEmSYhkgkiRJkmIZIJIkSZJifQyQN0mSFO/jH/Hpu6RsbjHc690jSZKyPd/+ed7e3iSV+7jF043qYs8jSZLi/fj//Q9Q9+sWz3eqKx0/SpKkyxkgsMEAiXf8KEmSLmeAwAYDJN7xoyRJupwBAhsMkHjHj5Ik6XIGCGwwQOIdP0qSpMsZILDBAIl3/ChJki5ngMAGAyTe8aMkSbqcAQIbDJB4x4+SJOlyBghsMEDiHT9KkqTLGSCwwQCJd/woSZIuZ4DABgMk3vGjJEm6nAECGwyQeMePkiTpcgYIbDBA4h0/SpKkyxkgsMEAiXf8KEmSLmeAwAYDJN7xoyRJupwBAhsMkHjHj5Ik6XIGCGwwQOIdP0qSpMsZILDBAIl3/ChJki5ngMAGAyTe8aMkSbqcAQIbDJB4x4+SJOlyBghsMEDiHT9KkqTLGSCwwQAJ97x+AgOVhW80idDhAAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100%;
  position: relative;
  height: 80px;
}

navbar{
   z-index: 100;
}

简单 :) 您只需要在 header 和导航栏之间调整 z-index。

header {
  z-index: 301;
}

navbar{
  z-index: 300;
}

玩得开心

编辑:在准确了解您想要的内容后,you can take a look at this