如何在 wordpress 导航中不影响子项的情况下突出显示处于活动状态的父项?

How to highlight the parent item in active state without the children being affected in wordpress navigation?

我一直在尝试编写一个 wordpress 下拉菜单。请看这里:http://www.hongkong8.info/

除了一件事,我几乎已经让它按照我想要的方式运行了。当我单击 "ABOUT" link 时,会触发颜色为 #111154 的活动状态。这是正确的,但是如果您再次滚动 "ABOUT" link,您会看到它的子页面 "ABOUT 1" 和 "ABOUT 2" 也以颜色 #111154 突出显示,这不是我想要的是。我只希望父页面以活动状态颜色突出显示,而不是其子页面。其子页面的颜色应为#01011D。

菜单使用默认的 wordpress classes .ie register_nav_menus 等。我尝试了不同的 css classes 但无法确定正确的 class。我的感觉是它可以使用 .current-menu-item 来定位,但我不知道如何定位子菜单项

下面的导航菜单包含 CSS。非常感谢任何见解!

/* Navigation Menus */
.site-nav ul {
 margin: 0;
 padding: 0;
}

.site-nav ul:before, .site-nav ul:after {content: ""; display: table;}
.site-nav ul:after {clear:both;}
.site-nav ul {*zoom: 1;}

.site-nav ul li {
 list-style: none;
 float: left;
}

.site-nav ul ul {
 display:none;
 position: relative;
 float: left;
 background: #01011D;
}

.site-nav ul li:hover ul{
 display: block;
 float: left;
 position: absolute;
 width:130px;
}

.site-nav ul ul a:hover{
 background-color: #ECECEC;
 display: block;
}

.site-nav ul ul li,
.site-nav ul ul a {
 float: none;
}

/* site header menu*/

div.nav-wrapper{
 width: 960px;
 background: #1c137f; /* Old browsers */
 background: -moz-linear-gradient(top,  #1c137f 2%, #0b093c 27%, #0b093c 70%, #020014 100%); /* FF3.6+ */
 background: -webkit-gradient(linear, left top, left bottom, color-stop(2%,#1c137f), color-stop(27%,#0b093c), color-stop(70%,#0b093c), color-stop(100%,#020014)); /* Chrome,Safari4+ */
 background: -webkit-linear-gradient(top,  #1c137f 2%,#0b093c 27%,#0b093c 70%,#020014 100%); /* Chrome10+,Safari5.1+ */
 background: -o-linear-gradient(top,  #1c137f 2%,#0b093c 27%,#0b093c 70%,#020014 100%); /* Opera 11.10+ */
 background: -ms-linear-gradient(top,  #1c137f 2%,#0b093c 27%,#0b093c 70%,#020014 100%); /* IE10+ */
 background: linear-gradient(to bottom,  #1c137f 2%,#0b093c 27%,#0b093c 70%,#020014 100%); /* W3C */
 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1c137f', endColorstr='#020014',GradientType=0 ); /* IE6-9 */
 margin: 0 auto;
 text-align: left;
 border-top:solid 1px #fff;
 box-shadow: 1px 1px 20px 1px #040315;
 border-bottom:solid 1px #7E0000;
 position: relative;
 float:left;
 z-index: 20;
}



.site-header nav ul li a:link,
.site-header nav ul li a:visited{
 display: block;
 padding: 7px 25px;
 text-decoration: none;
}

.site-header nav ul li a:hover {
 background-color: #ECECEC; /*hover state*/
}

.site-header nav ul li.current-menu-item a:link,
.site-header nav ul li.current-menu-item a:visited {
 background-color: #111154; /*active state*/
 color: #FFF;
}

查看结构,您可能会使用直接后代选择器来仅定位第一层的锚点,如下所示:

.site-header nav ul li.current-menu-item > a:link,
.site-header nav ul li.current-menu-item > a:visited {
    background-color: #111154; /*active state*/
    color: #FFF;
}

这不应将 #111154 背景颜色应用于子菜单中的锚点。