html - 子菜单重叠主菜单项

标签 html css drop-down-menu z-index overlap

我在尝试解决这个问题时不知所措。我制作了一个下拉菜单,它运行正常,但子菜单出现在主菜单上方。我试过摆弄 z-index,但我想不通。 (我是一个新手,所以如果我的代码困惑,我深表歉意)。

这是一个 JSFiddle:https://jsfiddle.net/jpyaz84L/

子菜单 ul 应该从主菜单项下方下拉并淡入。

HTML

<ul id="nav">
  <li class="main"><a href="http://www.google.com">Main Item</a>
    <ul>
      <li class="sub"><a href="http://www.google.com">Sub 1</a></li>
      <li class="sub"><a href="http://www.google.com">Sub 2</a></li>
    </ul>
  </li>
</ul>

CSS

ul#nav {
  position:relative;
  display: inline; 
  list-style-type: none;
  font-family: Helvetica;  
  padding: 15px 5px 15px 0;
}
li.main {
  position: relative;
  width: 250px;
  font: 14px Roboto;
  display: inline-block;
  background: #eef4ff;
  margin-right: -4px;
  cursor: pointer;
  z-index: 1;
  -webkit-transition: all 0.2s;
}
li.main a {
  display: block;
  padding: 15px 90px;
  color: inherit;
  text-decoration: none;
}
li.main:hover {
  background: #548cff;
  color: #FFFFFF;
}
li.main ul {
  position: absolute;
  top: 0px;
  left:-40px;
  display: block;
  list-style-type: none;
  opacity: 0;
  visibility: hidden;
  z-index: -1;
}
li.main:hover ul {
  top: 47px;
  visibility: visible;
  display: block;
  opacity: 1;
  -webkit-transition: all 1s;
}
li.sub {
  width: 225px;
  background: #6F6F6F;  
  color: #F0F0F0;
  opacity: .985;
}
li.sub a {
  background:inherit;
  color: inherit;
  display: inline-block;
  padding: 17px 90px;
  text-decoration:none;
}
li.sub:hover { 
  background: #888888; 
  color: #FFFFFF;
}

最佳答案

ul#nav
{
    /* No z-index */
}
li.main ul
{
    /* Negative z-index */
    z-index:-1;
}

您需要从父 ul 中取出 z-index 并给子 ul 一个负的 z-index(您几乎就在那里 :D )

使用您的代码的工作示例:https://jsfiddle.net/jpyaz84L/1/

来源:How to get a parent element to appear above child

关于html - 子菜单重叠主菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270079/

相关文章:

javascript - 有什么方法可以编辑for循环吗?

css - 无框网格定位/ float 样式

html - 我有两个下拉菜单。一横一纵。我希望它们在一页中,但不能一起使用

c# - 子控件可以使用其父控件的数据源吗?

javascript - 字符串与自身比较时无法返回 true。

javascript - iframe 中元素的 CKEditor 内联编辑器

html - 增加 Font Awesome 图标

html - 如何在不破坏结构的情况下将文本内容放置在图像下方?

css - IE中的水平下拉菜单

javascript - 将链接 <a> 包裹在 <div> 周围