css - 在多级菜单中隐藏其父 li 元素下方的框阴影

标签 css z-index

我正在学习 css 中的多级菜单

#main_nav ul {
  background: white;
  float: left;
  -webkit-transition: .5s;
  transition: .5s;
  padding: 0px;
}
#main_nav li {
  float: left;
  position: relative;
  width: 150px;
  list-style: none;
  -webkit-transition: .5s;
  transition: .5s;
}
#main_nav > ul > li > a,
h1 {
  text-transform: uppercase;
}
#main_nav a {
  display: block;
  text-decoration: none;
  padding: 5px 15px;
  color: #000;
}
#main_nav ul ul {
  z-index: 10;
  position: absolute;
  left: 0;
  top: 100%;
  visibility: hidden;
  opacity: 0;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
  font-size: 14px;
  list-style: none;
  background-color: #fff;
}
#main_nav ul ul ul {
  left: 100%;
  top: 0;
  margin-left: -10px;
  position: absolute;
  z-index: 2;
}
#main_nav li:hover,
#main_nav li:hover li {
  background: #ddd;
}
#main_nav li li:hover,
#main_nav li li:hover li {
  background: #bbb;
}
#main_nav li li li:hover {
  background: #999;
}
#main_nav li:hover > ul {
  visibility: visible;
  opacity: 1;
}
<nav id="main_nav">
  <ul>

    <li>
      <a href="">Mammals</a>
      <ul>
        <li>
          <a href="">Monotremes</a>
          <ul>
            <li><a href="">Echidnas</a>
            </li>
            <li><a href="">Platypus</a>
            </li>
          </ul>
        </li>
        <li>
          <a href="">Marsupials</a>
          <ul>
            <li><a href="">Opossums</a>
            </li>
            <li><a href="">Numbats, etc.</a>
            </li>
            <li><a href="">Bandicoots, etc.</a>
            </li>
            <li><a href="">Kangaroos, koalas, wombats, etc.</a>
            </li>
          </ul>
        </li>
        <li>
          <a href="">Placentals</a>
          <ul>
            <li><a href="">Primates, ungulates, etc.</a>
            </li>
            <li><a href="">Anteaters, sloths, etc.</a>
            </li>
            <li><a href="">Elephants, etc.</a>
            </li>
          </ul>
        </li>
      </ul>
    </li>


  </ul>
</nav>

问题是我无法将最后一级菜单框阴影隐藏在其父元素 li 下

我也试过 z-index 但它不起作用

fiddle

最佳答案

尝试

#main_nav ul ul { z-index: 1; }
#main_nav ul ul ul { z-index: 2; }

注意 li 标签,因为它会混淆一切。

http://jsfiddle.net/j7fe099t/3/

关于css - 在多级菜单中隐藏其父 li 元素下方的框阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27196588/

相关文章:

css - Bootswatch 将 nav 类的定义从 block 更改为 flex?

javascript - 属性等于选择器在 Safari 5.1.7 中无法识别

html - 如何在 div 之间设置不同的 z-Index?

safari 中的 jQuery fancybox z-index 问题

html - 表格列中的 CSS 垂直对齐方式

javascript - 有没有办法让跨浏览器的 CSS3 代码变干?

CSS3 3d 无缝过渡

c# - 如何在 3D 透视图中对 windows 8 UIElements 进行 Z 索引(Z 排序)?

css - IE 8,9 z-index 错误

css - Z-Index 和相对/绝对定位