css - z-index 不适用于 CSS 下拉菜单

标签 css z-index drop-down-menu

我有一个 CSS 驱动的简单下拉菜单,它可以在较窄的屏幕上显示为双行。

当我激活顶行元素之一的下拉菜单时,下拉菜单出现在与底行相同的“Z”级别。

我以为我已经根据需要设置了 z-indexes,但它在 Chrome、Firefox、Safari 或 iPhone 中不起作用。

这是一个示例:http://jsfiddle.net/bNBp3/ - “肉”附有下拉菜单。

<ul id="main-navigation">
    <li><a href="/" title="Go to the Home page"><span>Home</span></a>
    </li>
    <li><a href="/meat/" title="Go to the Meat page"><span>Meat</span></a>
        <ul>
            <li><a href="/meat/bacon/" title="Go to the Bacon page"><span>Bacon</span></a></li>
            <li><a href="/meat/ham/" title="Go to the Ham page"><span>Ham</span></a></li>
            <li><a href="/meat/pork/" title="Go to the Pork page"><span>Pork</span></a></li>
        </ul>
    </li>
    <li><a href="/vegetables/" title="Go to the Vegetables page"><span>Vegetables</span></a>
    </li>
    <li><a href="/about-us/" title="Go to the About Us page"><span>About Us</span></a>
    </li>
    <li><a href="/contact-us/" title="Go to the Contact Us page"><span>Contact Us</span></a>
    </li>
    <li><a href="/a-z/" title="Go to the A-Z page"><span>A-Z</span></a>
    </li>
</ul> 
ul#main-navigation {
    display:block;
    border-bottom:1px solid #ccc;
    margin:0 auto 0px auto;
    min-height:21px;
    padding:0;
    width:100%;
    z-index:11;
    clear:both;
}
ul#main-navigation li {
    display:block;
    float:left;
    list-style:none;
    margin:0 5px 0 0;
    padding:0;
    position:relative;
    z-index:12;
    min-height:22px;
    min-width:30%;
}
ul#main-navigation li a {
    color:#000;
    display:block;
    padding:2px;
    text-decoration:none;
    z-index:13;
}
ul#main-navigation li a.current, ul#main-navigation li a.section {
    color:#fff;
}
ul#main-navigation li ul {
    background:#eee;
    position:absolute;
    left:-1px;
    top:21px;
    display:none;
    overflow:hidden;
    padding:0px;
    z-index:14;
    width:100%;
    border:1px solid #ccc;
}
ul#main-navigation li ul li {
    display:block;
    float:none;
    margin:0;
    z-index:15;
    width:100%;
    border-bottom:1px solid #ccc;
}
ul#main-navigation li ul li a {
    background:#eee;
    display:block;
    color:#333;
    z-index:16;
    zoom:100%;     
}
ul#main-navigation li ul li a:hover {
    background:#fff;
}
ul#main-navigation li:hover {
    background:#eee;
    border-left:1px solid #ccc;
    border-right:1px solid #ccc;
}
ul#main-navigation li:hover a.current {
    background:#eee; color:#000;
}
ul#main-navigation li:hover ul {
    display:block;
}

最佳答案

只要去掉所有的 z-index 值就可以正常工作了:

http://jsfiddle.net/bNBp3/12/

在 Chrome 和 Firefox6 中测试。

编辑:我似乎忘记在演示中从 ul#main-navigation li ul 中删除 z-index,这就是它起作用的原因,所以只需将其设置为 1 或更高的任何值.

关于css - z-index 不适用于 CSS 下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7116795/

相关文章:

iPhone 不会在具有更高 z-index 的 div 上滚动

css - WP + super 鱼 : Child menu item has hover/active applied when on parent page

javascript - jQuery - 恢复删除的选择选项

php - 使用下拉菜单编辑 mysql 数据

javascript - Hartl 第 3 版第 8.2.3 节下拉菜单不起作用

html - 根据是否存在其他元素更改 div 的宽度

jquery - 带有 jQ​​uery 水平滚动条的 CSS3 多列布局不能在列之间使用滚轮

html - 如何将 z-index 设置为在 Safari 中工作的 CartoDB?

javascript - 你能在IE8中用JS改变z-index吗

html - 有没有办法向选择器添加类/ID?