Opened 15 years ago
Closed 15 years ago
#14701 closed defect (bug) (wontfix)
HTML markup inconsistency in menus
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Priority: | normal | |
| Severity: | trivial | Version: | 3.0.1 |
| Component: | Menus | Keywords: | |
| Focuses: | Cc: |
Description
Just a heads up on a minor inconsistency with the menu HTML classes.
Summary
In the source, menus have the following markup:
With a dropdown: li.current_page_ancestor With no dropdown: li.current-page-ancestor
Detail (Steps to Reproduce)
One menu exists with two top-level pages, called A and B. Both have child pages, but only page A will display a drop-down menu. When you are on a child of page A, you will find:
li.current_page_ancestor
But when you are on a child of page B, you will get this:
li.current-page-ancestor
Commentary
This currently requires you to target both versions to get consistent styling, JavaScript functionality. Could be a "feature", if you wanted to identify the list item without a drop down menu, but semantically, it could be done in a cleaner way.
Change History (2)
Note: See
TracTickets for help on using
tickets.
This is intended behavior, because
current_page_ancestorandcurrent-page-ancestorhave different meanings.current_page_ancestoris meant to be backwards-compatible withwp_page_menu()as an alias forcurrent-menu-ancestor. It indicates that the menu item assigned that class is an ancestor in the arbitrary menu hierarchy to the menu item of whatever page you're currently viewing.For example, if C is a post (not a page) and is made a menu item under A in the menu hierarchy, when viewing C you will see that A has the
current-menu-ancestorandcurrent_page_ancestorclasses. That's because in the menu A is ancestor to C.In contrast,
current-page-ancestorindicates a relationship among pages not menu items. If D is a page that's a child of A, viewing D will give A's menu item thecurrent-page-ancestorclass, because D is actually a child page of A.