CSS菜单链接保持突出显示

时间:2009-01-12 17:52:43

标签: css menu

所以我在css菜单上尝试我的手,我有一个简单的错误,我无法解决,并没有找到任何帮助搜索它。问题是,当我将鼠标悬停在下拉菜单上时,父链接会保持突出显示,文本将恢复为原始颜色。希望这能解释它。这是css代码,我确定这是添加内容或修改一行代码的问题。您可以查看问题here,一切正常,直到您访问子菜单(如BAR或信息)。

#nav, #nav ul {
    text-align: center;
    text-size:16px;
    float: left;
    width: 750px;
    height: 20px;
    list-style: none;
    line-height: 1;
    background: white;
    padding: 0;
    border: solid #000;
    border-width: 0px;
    border-bottom-width: 1px;
    margin: 0;
    background-image: url('/images/bg.gif');
}

#nav a {
    display: block;
    width: 75px;
    height: 20px;
    color: #0000FF;
    text-decoration: none;
}

#nav a:hover {
    display: block;
    width: 75px;
    height: 20px;
    color: #FFF;
}

#nav li {
    float: left;
    padding: 0;
    width: 75px;
}

#nav li ul { /*sub menu */
    position: absolute;
    left: -999em;
    height: auto;
    width: 75px;
    border: solid #000;
    border-width: 0px;
    border-bottom-width: 1px;
    border-top-width: 1px;
    background-image: url('/images/submenu_bg.png');
}

#nav li li {
    width: 75px;
}

#nav li ul a {
    width: 75px;
}

#nav li ul ul {
    margin: -1.75em 0 0 14em;
}

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul {
    left: -999em;
}

#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul {
    left: auto;
}

#nav li:hover, #nav li.sfhover {
    height: 20px;
    background: #0000FF;
}

2 个答案:

答案 0 :(得分:1)

您可以尝试在li的悬停上设置链接的颜色,如下所示:

#nav li:hover a {
    color: #fff;
}

#nav li:hover li a
{
    color: #0000FF;
}

答案 1 :(得分:1)

您要在#nav a:hover上设置文字颜色,而在#nav li:hover上设置背景颜色。因为您的子菜单包含在li中,所以即使光标位于子菜单中,它仍会被视为悬停。子菜单不是包含在链接中,因此它们不会保持突出显示并恢复为正常颜色。如果您希望菜单项停止突出显示,请将background属性移至#nav a:hover

在:

#nav a:hover {
    display: block;
    width: 75px;
    height: 20px;
    color: #FFF;
}

#nav li:hover, #nav li.sfhover {
    height: 20px;
    background: #0000FF;
}

后:

#nav a:hover, #nav li.sfhover a {
    display: block;
    width: 75px;
    height: 20px;
    color: #FFF;
    background: #0000FF;
}

或者,如果您希望在将鼠标悬停在子菜单(看起来更好,IMO)时突出显示菜单保持,请将color移至li:hover。我知道它有点冗长,但它确实有效。 : - )

在:

#nav a:hover {
    display: block;
    width: 75px;
    height: 20px;
    color: #FFF;
}

#nav li:hover, #nav li.sfhover {
    height: 20px;
    background: #0000FF;
}

后:

#nav a:hover {
    display: block;
    width: 75px;
    height: 20px;
}

#nav li:hover a, #nav li.sfhover a {
    color:white;
}

#nav li:hover li a, #nav li.sfhover li a {
    color:blue;
}

#nav li:hover li a:hover, #nav li.sfhover li a:hover {
    color:white;
}

#nav li:hover, #nav li.sfhover {
    color: #FFF;
    height: 20px;
    background: #0000FF;
}