寄稿者の 1 人が提案したように、親は、これを機能させるために、別のクラスを子 (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 つがアクティブなときに固有のルールで親状態を特定すると、それは間違いなく簡単です。明らかに、子項目が親から「アクティブ」状態を継承していない場合、これはより簡単になりますが、使用しているメニュー システムはここで説明されているように動作します。貢献してくれた皆さんに感謝します。
注: これは、複数のサブメニュー レベルの深さを含むメニューではテストしていません。