实际菜单后面的下拉css菜单(z-index)

时间:2013-04-16 11:34:05

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

我遇到了隐藏在下一行菜单后面的子菜单的问题。 menu vs sub-menu opened

我搜索了很多主题和问题,基本上每个人都说我需要添加z-index> 100到我的子菜单。我到处尝试过,子菜单存在,但没有任何效果。

你知道如何让它按预期工作吗?

这是我的代码:

#header #nav{
    float:right;
    margin:0px;
    position:relative;
    z-index:100;
}

#header #nav > li {
    display:inline-block;
    margin:0;
    position:relative;
    z-index:100;
}

#header #nav > li > a{
    color:#727272;
    border:none;
    background:none;
    font-size:11px;
    font-weight:700;
    height:60px;
    line-height:59px;
    display:block;
    padding:0 15px;
    background:none center bottom;
    position:relative;
}

#header #nav > li > a:hover{
    color: #0073fe;
}

#nav li ul.sub-menu{
    width:210px;
    background:#fff;
    position:absolute;
    border:1px solid #ececec;
    border-top:2px solid #0073fe;
    margin:0;
    top:96%;
    padding:0 15px;
    display:none;
    -webkit-box-shadow:  0px 2px 50px 10px rgba(0, 0, 0, 0.05);
    box-shadow:  0px 2px 50px 10px rgba(0, 0, 0, 0.05);
    margin-top:2px;        
}

#nav li ul.sub-menu > span{
    position:absolute;
    top:-6px;
    left:30px;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #0073fe;
}

#nav li ul.sub-menu > li{
    margin:0;
    width:100%;
    display:block;
}

#nav li ul li a{
    font-size:11px;
    font-weight:700;
    display:block;
    padding:7px 0px;
    color:#727272;
    border:none;
    border-bottom:1px solid #ececec;
}

#nav li ul li a:hover{
    color: #0073fe;
}

#nav li ul li:last-child a{
    border-bottom:none !important;
}

#nav li ul li ul.sub-menu{
    margin-left: 190px !important;
    margin-top: -35px !important;
}

.slogan{
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    font-size:34px;
    line-height:35px;
    text-align:center;
    font-weight:300;
    letter-spacing: -0.01em;
    color:#000;
    padding:0px 30px 30px;
}

1 个答案:

答案 0 :(得分:0)

所以你想:submenu > menu;这意味着:#nav li ul.sub-menu > #header/#nav

问题是您将菜单设置为高z-index而不是子菜单(并导致:submenu < menu)。

z-index定义了你的元素所在的“设置图层”,如果它设置得高于另一个,那么它将出现在它的顶部。

您需要删除#header #nav#header #nav>li的z-index,而是将高z-index放到#nav li ul.sub-menu

#nav li ul.sub-menu {
    z-index: 50; //It doesn't have to be a hundred, 50 should do, or even 5...
}