正如其中一位贡献者所建议的那样,父级需要另一个类将其与子(ren)菜单项区分开来才能正常工作。我发布我的解决方案以防其他人面临类似的情况。
这是父页面是活动页面时的 HTML:
<ul class="menu">
<li><a>void</a></li>
<li class="active">
<a>one (parent, active page)</a>
<ul class="sub-menu">
<li><a>two (child)</a></li>
<li><a>three (child)</a></li>
</ul>
</li>
</ul>
这是当父级的子菜单项是活动页面时的 HTML:
<ul class="menu">
<li><a>void</a></li>
<li class="active page-parent">
<a>one (parent)</a>
<ul class="sub-menu">
<li class="active"><a>two (child, active page)</a></li>
<li><a>three (child)</a></li>
</ul>
</li>
</ul>
这些是我使用的规则:
/* Highlights the parent and any child
menu item under the parent when the
parent is the active page. */
ul.menu li.active a {
color: red;
}
/* Keeps the children menu items normal
when the parent is the active page.
Also keeps the parent normal when a
child menu item is the active page. */
ul.menu li.active ul.sub-menu li a,
ul.menu li.active.page-parent a {
color: black;
}
/* Highlights the child menu item that
is active */
ul.menu li.active.page-parent ul.sub-menu li.active a {
color: red;
}
一旦您在其子菜单项之一处于活动状态时使用唯一规则识别父状态,这绝对是简单的。显然,如果子项没有从父项继承“活动”状态,这会更容易,但我使用的菜单系统的行为如此处所述。感谢大家的贡献。
注意:我没有使用包含超过 1 个子菜单级别的菜单对此进行测试。