W3C home > Mailing lists > Public > www-style@w3.org > July 2008

Re: Parent Combinator / Parent pseudo-class

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Fri, 25 Jul 2008 13:20:59 -0500
Message-ID: <dd0fbad0807251120l4d417f9jf1c3e1c666c22a46@mail.gmail.com>
To: "Brad Kemper" <brkemper@comcast.net>
Cc: "Francois Remy" <fremycompany_pub@yahoo.fr>, "Andrew Fedoniouk" <news@terrainformatica.com>, "Boris Zbarsky" <bzbarsky@mit.edu>, "www-style list" <www-style@w3.org>
On Fri, Jul 25, 2008 at 10:56 AM, Brad Kemper <brkemper@comcast.net> wrote:

>
> Consider the following:
>
> div:with-child(code) { border:2px solid #999; background-color:beige; }
> div:with-child(code):before { content:"See Code:"; }
>
> I would only want this on DIVs that surrounded the Code block directly, not
> on any old DIV that happened to be an ancestor of the code block.


Nod, searching for just children would certainly be useful.  That's why my
proposal was for a simple selector preceded by a combinator.  You'd do this:

div:matches( > code ) { border:2px solid #999; background-color:beige; }
div:matches( > code ):before { content:"See Code:"; }

I can really see no use case for a "has-child" pseudo-class to look at all
> descendants.


Really?  I can.  I probably wouldn't ever want to use a plain descendant
selector on something like a plain div, but I could easily see this being
used on a more complex element about which you have a greater knowledge of
it's use.  Frex:

div.tab-container:matches( code ) { border:2px solid #999;
background-color:beige; }

<div class="tab-container">
  <h1>Tab title</h1>
  <div>
    Tab body text
    <div>
      <h1>Code language</h1>
      <code> code text </code>
    </div>
    Tab body text
  </div>
</div>

The case for the adjacent-sibling and general-sibling combinators is much
stronger, because it should be *easy* to imagine wanting to key off of a
following sibling (the use cases are exactly anytime you want the opposite
of ~).

~TJ
Received on Friday, 25 July 2008 18:43:15 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:55:10 GMT