2013-04-04 195 views
1

我有一个完全用CSS(无JS)制作的下拉菜单。我希望顶层菜单项在我的鼠标悬停在下拉菜单上时保持突出显示,但我无法弄清楚。下拉菜单中的顶级菜单项

以下是我在谈论的一个例子:当您将光标放在下拉列表中,顶级项目会恢复为默认颜色...

任何人都可以提供帮助的?是否有一个规则可以解决这个问题?

这里是CSS:

nav { 
    z-index: 10001; 
    position: relative; 
    display: block; 
    width: 100%; 
    height: 45px; 
    text-transform: uppercase; 
    border-bottom: 1px solid white; 
    color: white; 
    text-shadow: none; 
    text-align: center 
} 
nav a { 
    text-decoration: none 
} 
#topmenu { 
    position: relative; 
    text-align: left; 
    left: 2% 
} 
nav ul { 
    white-space: nowrap; 
    list-style: none; 
    position: relative; 
    display: inline-block 
} 
nav ul ul { 
    visibility: hidden; 
    opacity: 0; 
    -webkit-opacity: 0; 
    -moz-opacity: 0; 
    transition: opacity .3s linear,visibility .3s linear; 
    -webkit-transition: opacity .3s linear,visibility .3s linear; 
    -moz-transition: opacity .3s linear,visibility .3s linear; 
    -o-transition: opacity .3s linear,visibility .3s linear 
} 
nav ul ul li: last-child { 
    -webkit-border-bottom-right-radius: 6px; 
    -webkit-border-bottom-left-radius: 6px; 
    -moz-border-radius-bottomright: 6px; 
    -moz-border-radius-bottomleft: 6px; 
    border-bottom-right-radius: 6px; 
    border-bottom-left-radius: 6px; 
    border-bottom: 1px solid #afafaf 
} 
nav ul li a: hover { 
    padding: 13px 20px; 
    color: green 
} 
nav ul ul { 
    padding: 0; 
    position: absolute 
} 
nav ul ul li { 
    float: none; 
    position: relative; 
    border: 1px solid #afafaf; 
    border-bottom: 1px solid #b7b7b7; 
    border-top: 1px solid #fff; 
    background: -webkit-linear-gradient(#eee 0,#d4d4d4 100%); 
    background: linear-gradient(#eee 0,#d4d4d4 100%); 
    background: -moz-linear-gradient(#eee 0,#d4d4d4 100%); 
    background: -o-linear-gradient(#eee 0,#d4d4d4 100%); 
    -moz-box-shadow: inset 2px 2px 5px #ccc; 
    -webkit-box-shadow: inset 2px 2px 5px #ccc; 
    box-shadow: inset 2px 2px 5px #ccc; 
    filter: progid: DXImageTransform.Microsoft.Shadow(color=#ccc,Direction=134,Strength=5); 
    filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee',endColorstr='#d4d4d4') 
} 
nav ul ul li a { 
    padding: 13px 20px; 
    color: #063058 
} 
nav ul li: hover>ul { 
    visibility: visible; 
    opacity: 1; 
    -moz-opacity: 1; 
    -webkit-opacity: 1 
} 
nav ul li { 
    float: left 
} 
#topmenu li a: hover { 
    color: #fff 
} 
#topmenu li a: hover { 
    color: green; 
    background: -webkit-linear-gradient(#eee 0,#d4d4d4 100%); 
    background: linear-gradient(#eee 0,#d4d4d4 100%); 
    background: -moz-linear-gradient(#eee 0,#d4d4d4 100%); 
    -moz-box-shadow: inset 2px 2px 5px #ccc; 
    -webkit-box-shadow: inset 2px 2px 5px #ccc; 
    box-shadow: inset 2px 2px 5px #ccc; 
    filter: progid: DXImageTransform.Microsoft.Shadow(color=#ccc,Direction=134,Strength=5); 
    filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee',endColorstr='#d4d4d4') 
} 
nav ul li a { 
    display: block; 
    padding: 13px 20px; 
    color: white 
} 
nav ul ul ul { 
    position: absolute; 
    left: 100%; 
    top: 0 
} 
+0

您的HTML丢失。尝试在jsfiddle之类的东西中设置一个工作示例,我将很乐意演示如何完成。不应该难 – Pevara 2013-04-04 18:49:56

+0

我试过(http://jsfiddle.net/qpGc8/),但它不工作在jsfiddle,这就是为什么我给了网站的直接网址:( – Dyn 2013-04-04 19:05:36

回答

1

这工作

#topmenu li:hover a { 
    background: linear-gradient(#EEEEEE 0px, #D4D4D4 100%) repeat scroll 0 0 transparent; 
    box-shadow: 2px 2px 5px #CCCCCC inset; 
    color: green; 
}

I`veĴ ust在那里复制你的代码。

+0

这不工作,谢谢 - 只需修复下拉项目的颜色当徘徊 – Dyn 2013-04-04 19:35:54

+0

你们真棒,感谢您的帮助 - 这已经困扰了我几个星期! – Dyn 2013-04-04 19:50:56

+0

你很好) – 2013-04-05 06:19:16