[wp-trac] [WordPress Trac] #18256: Close the current-cat li before the children

WordPress Trac wp-trac at lists.automattic.com
Tue Jul 26 04:48:06 UTC 2011


#18256: Close the current-cat li before the children
--------------------------+----------------------
 Reporter:  betsyk        |       Owner:
     Type:  defect (bug)  |      Status:  closed
 Priority:  normal        |   Milestone:
Component:  General       |     Version:  3.2.1
 Severity:  normal        |  Resolution:  invalid
 Keywords:                |
--------------------------+----------------------
Changes (by dd32):

 * status:  new => closed
 * resolution:   => invalid
 * milestone:  Awaiting Review =>


Old description:

> In a hierarchical category list, children adopt the current-cat class
> from parents.  This is due to the Walker_Category structure which nests
> <ul class='children'> inside the <li> of the parent list. The parent list
> should be closed before the child <ul> begins.
>
> Let's say I have a list of categories:
>
> <ul><?php wp_list_categories('style=list&hierarchical=1&depth=0');
> ?></ul>
>
> And I want to style the current category:
>
> .current-cat {
> background-color: #cccccc;
> }
>
> The HTML output is this:
>
> <ul><li class="cat-item cat-item-21 current-cat"><a
> href="http://mysite/category/food/cookies">cookies</a>
> <ul class='children'><li class="cat-item cat-item-107"><a
> href="http://mysite/category/food/cookies/oatmeal">oatmeal</a></li></ul></li></ul>
>
> It should be this:
>
> <ul><li class="cat-item cat-item-21 current-cat"><a
> href="http://mysite/category/food/cookies">cookies</a></li><ul
> class='children'><li class="cat-item cat-item-107"><a
> href="http://mysite/category/food/cookies/oatmeal">oatmeal</a></li></ul></ul>
>
> Didn't see anything related in the open tickets - hopefully this isn't a
> duplicate bug report.

New description:

 In a hierarchical category list, children adopt the current-cat class from
 parents.  This is due to the Walker_Category structure which nests <ul
 class='children'> inside the <li> of the parent list. The parent list
 should be closed before the child <ul> begins.

 Let's say I have a list of categories:

 <ul><?php wp_list_categories('style=list&hierarchical=1&depth=0'); ?></ul>

 And I want to style the current category:

 `.current-cat {
 background-color: #cccccc;
 }`

 The HTML output is this:

 <ul><li class="cat-item cat-item-21 current-cat"><a
 href="http://mysite/category/food/cookies">cookies</a>
 <ul class='children'><li class="cat-item cat-item-107"><a
 href="http://mysite/category/food/cookies/oatmeal">oatmeal</a></li></ul></li></ul>

 It should be this:

 <ul><li class="cat-item cat-item-21 current-cat"><a
 href="http://mysite/category/food/cookies">cookies</a></li><ul
 class='children'><li class="cat-item cat-item-107"><a
 href="http://mysite/category/food/cookies/oatmeal">oatmeal</a></li></ul></ul>

 Didn't see anything related in the open tickets - hopefully this isn't a
 duplicate bug report.

--

Comment:

 {{{
 <ul>
   <li>
    has-children
   </li>
   <ul>
    <li> children..
 }}}
 like you suggest is invalid nested HTML.

 The current form is the correct method for nested lists:
 {{{
 <ul>
  <li>
    has-children
    <ul>
      <li> children..
 }}}

 You can probably achieve what you want by having the child ul 100% width,
 and setting a padding on it instead of a margin, as a result, the
 background colour of the parent would be hidden behind the background
 colour of the child ul.

 Closing as invalid due to the premise being the HTML is incorrect.

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/18256#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list