1

因此,我正在尝试使用 css 菜单,但我遇到了一个无法修复的简单错误,并且没有找到任何帮助来搜索它。问题是当我将鼠标悬停在下拉菜单上时,父链接保持突出显示,并且文本恢复为原始颜色。希望这可以解释。这是css代码,我确定这是添加一些东西或修复一行代码的问题。您可以在此处查看问题,一切正常,直到您访问子菜单(如在 BAR 或 Info 中)。

#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;
}
4

2 回答 2

1

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

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

#nav li:hover li a
{
    color: #0000FF;
}
于 2009-01-12T18:00:02.217 回答
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;
}
于 2009-01-12T18:41:43.083 回答