如何管理导航菜单的z-index?

时间:2014-10-10 07:53:32

标签: css asp.net z-index

我有带导航菜单的ASP.NET应用程序。我使用HtmlGenericControl类(“ul”和“li”元素)和CSS在(C#)后面的代码中创建了菜单。 CSS看起来如下:

ul.navMenu {
    padding: 0px;
    margin: 0px;
    width: 1000px;
    list-style: none;
    position: relative;
    z-index: 100000;
}

ul.navMenu ul {
    position: absolute;
    left: 0;
    top: 100%;
    display: none;
    padding: 0px;
    margin: 0px;
}

ul.navMenu li {
    display: inline;
    float: left;
    position: relative;
}

ul.navMenu a {
    text-decoration: none;
    padding: 10px 0px;
    width: 100px;
    background: gainsboro;
    color: #010101;
    float: left;
    text-align: center;
    border: 1px solid #ffffff;
    text-transform: uppercase;
}

ul.navMenu a:hover {
    background: #d91703;
    color: #ffffff;
}

ul.navMenu ul a {
    width: 150px;
    font-size: 10px;
}

ul.navMenu ul li {
    display: block;
    margin: 0px;
}

ul.navMenu li:hover ul {
    display: block;
}

ul.navMenu ul ul {
    top: 0;
    left: 100%;
}

ul.navMenu li:hover ul ul {
    display: none;
}

ul.navMenu ul li:hover ul {
    display: block;
}

问题是当我将z-index设置为100000以使其保持在所有其他元素之上时,会弹出一些窗口并通过它们显示菜单,这看起来不太好。请看下面的屏幕截图,您可以在其中看到白色弹出窗口和菜单行。菜单不应该是可见的。它应该在窗口后面。

我不确定如何使其发挥作用。

The screen shot

1 个答案:

答案 0 :(得分:0)

根据经验......在规划您的应用设计时,请考虑您要展示的不同图层。认为哪些会显示在最顶层,而哪些将与其他人一起显示。

如果你有这个,只需将不同的图层从低到高编号,并记住没有z-index的图层的z-index为0。

如果您希望能够"插入"未来不需要重新编码样式的未来图层之间的层数,您可以按10步进行编号。