CSS Superfish 菜单 2 级覆盖了 1 级菜单元素

标签 css stylesheet z-index superfish

我在 http://redaxo.witconsult.de 上的 superfish 菜单有一个 CSS 相关问题

在解决了大部分问题之后,我现在遇到了以下问题:需要二级元素的菜单(子菜单)阻塞了一级元素。现在永远无法选择一级元素! ("Leistungen"& "Kontakt") 我知道在最初的 super 鱼中情况并非如此。

我试过使用 position: relative;和 z-index 来解决这个问题,但它不起作用。如果它不是来自被另一个元素覆盖的元素,我真的不知道发生了什么......:(

非常感谢!

这是我的CSS代码: 更重要的东西在/** DEMO SKIN **/开始的地方

    /*** ESSENTIAL STYLES ***/
    .sf-menu, .sf-menu * {
        margin:         0;
        padding:        0;
        list-style:     none;
    }
    .sf-menu {
    }
    .sf-menu ul {
        position:       absolute;
        top:            -999em;
        width:          10em; /* left offset of submenus need to match (see below) */
    }
    .sf-menu ul li {
        width:          100%;
    }
    .sf-menu li:hover {
        visibility:     inherit; /* fixes IE7 'sticky bug' */   
    }
    .sf-menu li {
        float:          left;
        position:       relative;
    }
    .sf-menu a {
        display:        block;
        position:       relative;
    }
    .sf-menu li:hover ul,
    .sf-menu li.sfHover ul {
        left:           0;
        top:            2.5em; /* match top ul list item height */
        z-index:        99;
    }
    ul.sf-menu li:hover li ul,
    ul.sf-menu li.sfHover li ul {
        top:            -999em;
    }
    ul.sf-menu li li:hover ul,
    ul.sf-menu li li.sfHover ul {
        left:           10em; /* match ul width */
        top:            0;
    }
    ul.sf-menu li li:hover li ul,
    ul.sf-menu li li.sfHover li ul {
        top:            -999em;
    }
    ul.sf-menu li li li:hover ul,
    ul.sf-menu li li li.sfHover ul {
        left:           10em; /* match ul width */
        top:            0;
    }

    /** DEMO SKIN **/
    .sf-menu {
        float:          left;
        margin-bottom:  1em;
    }
    .sf-menu a {
        text-indent: 7px;
        color: #333;
    }


    .sf-menu a:visited  { /* visited pseudo selector so IE6 applies text colour*/
        color:          #333;
    }

    .sf-menu li a:visited  { /* visited pseudo selector so IE6 applies text colour*/
        color:          #333;
    }

    .sf-menu li li a:visited  { /* visited pseudo selector so IE6 applies text colour*/
        color:          #DDD;
    }
    .sf-menu li {       /*//// menu lvl 1 /////*/
        color:          #333;
        width:          118px;
        height:         25px;
        padding-top:    60px;
        font-weight:    normal;
        font-size:      14px;
        text-decoration:none;
        position:relative;
        background:     url(../images/menu/menuitem.png);
        z-index: 1;
    }

    .sf-menu li a:focus, .sf-menu li a:hover, .sf-menu li a:active {
        color:          #DDD;
        top:            -60px;
        height:         25px;
        padding-top:    60px;
        position:relative;
        background:     url(../images/menu/menuitem-mo.png);
        z-index: 1;

    }


    .sf-menu li li {    /*//// submenu lvl 2 /////*/
        font-size:      12px;
        top:            50px;
        height:         21px;
        padding-top:    5px;
        background:     url(../images/png_black40per.png);
    }

    .sf-menu li li a {  
        color:          #DDD;
    }

    .sf-menu li li a:focus, .sf-menu li li a:hover, .sf-menu li li a:active {
        color:          #333;
        top:            -5px;
        height:         21px;
        padding-top:    5px;
        background:     url(../images/png_white40per.png);
    }

最佳答案

问题在于,构成下拉菜单的 ul 元素与它们不应该重叠的区域重叠:

  • .sf-menu li li 上,设置 top: 0
  • 在选择器 .sf-menu li:hover ul, .sf-menu li.sfHover ul 上,设置 top: 6em
  • ???
  • 利润!

当 JavaScript 被禁用时,我更喜欢你的菜单。淡入淡出效果(尤其是当您从子菜单中 mouseout 时的延迟)感觉笨拙且缓慢。

关于CSS Superfish 菜单 2 级覆盖了 1 级菜单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379348/

相关文章:

html - 使用 CSS 定位一组 <div> 中的最终 <div>

html - z-index 顺序问题

jquery - CSS 变换干扰 z-index

javascript - 视差效果在某些浏览器中不起作用

javascript - 如何从 PHP echo sql 语句中删除前导零?

javascript - 在 AngularJS 应用程序中动态加载和卸载外部样式表

css - z-index chrome 错误

html - 使用 twitter bootstrap 的响应式 html

html - 在按钮元素内使用 float 元素时修复 IE6/7 问题

css - Qt 4 : How to set outer border for QWidget so that its inner widgets are unaffected?