所以我正在尝试一个 css 菜单,我有一个简单的错误,我无法修复并且没有找到任何搜索它的帮助。问题是,当我将鼠标悬停在下拉菜单上时,父链接保持突出显示并且文本恢复为原始颜色。希望这能解释它。这是css代码,我确定这是添加一些东西或修复一行代码的问题。可以查看issue 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;
}
最佳答案
您在 #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;
}
关于CSS 菜单链接保持突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/436319/