CSS菜单帮助(第二个菜单消失)

时间:2012-03-16 16:30:35

标签: css menu

我正在尝试将这个css菜单放在一起,但我无法正常工作。当您浏览顶部菜单中的任何链接时,它会打开第二个菜单,但是当您继续它时,第二个菜单会消失。另外,它错位了。我不能把它放在左边:0

http://tinyurl.com/7rxskdj

#menu {width:800px;background-color:#FFF;min-height:30px;border:0;border-top:2px solid #8BD2E4;padding:0 5px;margin:0 auto;}
#nmenu {list-style:none;padding:0;margin:0;width:700px;}
#nmenu li {display:inline;float:left;height:20px;margin-left:45px;position:relative;}
#nmenu li.frst {margin-left:0}
#nmenu li a {font: 11px/30px Tahoma, Geneva, sans-serif;text-decoration:none;color:#979598;letter-spacing:2px;font-weight:bold;text-transform:uppercase;}
#smedia {width:100px;height:30px;float:left;}
#fb, #tw, #pt {background: #FFF url(smedia.png) no-repeat center;width:16px;height:16px;display:block;float:right;margin:7px 3px;}
#fb {background-position: -1px -1px;}
#tw {background-position: -18px -1px;}
#pt {background-position: -35px -1px;}
#nmenu li ul {display:none;position:absolute;top:30px;left:0;border:1px solid red;background-color:#FFF;}
#nmenu li:hover ul {display:block}
#nmenu li ul li {float:left;width:100px;}

4 个答案:

答案 0 :(得分:4)

尝试下面的css:

#nmenu li {
    display: inline;
    float: left;
    margin-left: 44px;
    position: relative;
}

#nmenu li ul {
    background-color: #FFFFFF;
    border: 1px solid red;
    display: none;
    left: -5px;
    padding: 0;
    position: absolute;
    top: 30px;
}

#nmenu li a {
    color: #979598;
    display: block;
    font: bold 11px/30px Tahoma,Geneva,sans-serif;
    letter-spacing: 2px;
    padding-left: 2px;
    text-decoration: none;
    text-transform: uppercase;
}

答案 1 :(得分:3)

修复消失的菜单:将5px底部填充添加到顶层锚点,这将消除元素之间的间隙。

'错位'问题是由ulli元素的默认填充和边距引起的。明确设置边距和填充以定位它们。

答案 2 :(得分:1)

您在列表项目中应用了一个高度,而不是li中的链接项,因此移动高度并将行高应用于与您的a标记匹配的高度你的菜单块,然后你可以简单地重新定位你的子菜单,使其完全100%来自你的菜单项,如下所示:

<强> CSS

#nmenu li a {
   height:30px;
   line-height:30px;
   display:block;
}

#nmenu li ul {
   top:100%;
}

答案 3 :(得分:0)

您的绝对定位会在容器<li><ul>子元素之间留下空隙。减少#nmmenu li ul {}上“top”的值。