CSS正确显示菜单

时间:2012-10-01 14:20:15

标签: css

我有一个类别表,它维护无限级别的子类别。它看起来像下面snap shot中显示的那个。

enter image description here

在上表中,第三列显示父名称。当鼠标按钮悬停在父名称上时,会显示一个菜单,显示不同颜色的类别的树结构。

当弹出菜单时,它与下面的父名称重叠(我无法用正确的文字表达,所以请看上面的图片)。应该使用什么CSS或其他方法才能正确显示菜单?

父姓名显示在<ul><li></li></ul>中,如下所示

<ul>
    <li>
        <div style='width:53px;cursor:hand;text-align:left; background-color:white; border:none; color:black; font-size:small;'>

         <?php echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8');?>

        </div>                            
   </li>
</ul>

如果需要显示整个菜单的CSS,则如下所示。

.jqueryslidemenu{font:bold 9px Tahoma, Verdana, sans-serif;color:#fff;width: 100%;text-align:left;z-index:99999}
.jqueryslidemenu ul{margin: 0;padding: 0px;list-style-type: none;z-index:99999}
.jqueryslidemenu ul li{position: relative;display: inline;float: left;z-index:99999}
.jqueryslidemenu ul li a{font:bold 12px Tahoma, Verdana, sans-serif;display: block;background:#000;color: #fff;padding: 3px 3px;text-decoration: none;z-index:99999}
* html .jqueryslidemenu ul li a{display: inline-block;z-index:99999}
.jqueryslidemenu ul li a:link, .jqueryslidemenu ul li a:visited{color: #fff;text-decoration: none;z-index:99999}

.jqueryslidemenu ul li a:hover{background:#000;text-decoration:none;color: #03C;z-index:99999}
.jqueryslidemenu ul li ul{position: absolute;left: 0;display: block;visibility: hidden;z-index:99999}
.jqueryslidemenu ul li ul li{display: list-item;float: none;z-index:99999}
.jqueryslidemenu ul li ul li ul{top:0;z-index:99999}
.jqueryslidemenu ul li ul li a{font:bold 9px Tahoma, Verdana, Geneva, sans-serif;width: 140px;margin: 0;padding: 6px;border-top-width: 0;border-bottom: 1px solid gray;z-index:99999}
.jqueryslidemenuz ul li ul li a:hover{color:#fff; background:#000;z-index:99999}
.downarrowclass{position: absolute;top: 8px;right: 7px;display:none;z-index:99999}
.rightarrowclass{position: absolute;top: 6px;right: 5px;z-index:99999}

2 个答案:

答案 0 :(得分:2)

看起来像z-index问题。

可能是因为你的css中的这一行:

.jqueryslidemenu ul li a

z-index是否为99999,使得父级链接文本显示在级联弹出式菜单上方?将它的z-index降低到1,看看是否有帮助。

答案 1 :(得分:1)

看起来z-index设置为99999意味着它强制项目成为最顶层。给该特定元素(ul li)指定auto或1的z-index。通过为该列提供如下特定类来执行此操作。

HTML:

<li class="behind"></li>

的CSS:

li.behind{
    z-index: auto;
}