W3C home > Mailing lists > Public > www-style@w3.org > December 1997

RE: Selector Readabiliitiy [sic]

From: Andrew n marshall <amarshal@usc.edu>
Date: Thu, 4 Dec 1997 23:08:52 -0800
Message-ID: <01BD0109.9B62F890.amarshal@usc.edu>
To: "www-style@w3.org" <www-style@w3.org>

After thinking it over, I decided I preferred David's proposal over my own 
with respect to the first and last pseudo classes.  Any earlier message 
between he and I showed me how the -child or -sibling becomes confusing 
because it is unclear with respect to what. In contrast P:first means the 
first P of it's siblings, which seems much more straight forward (to me, at 
least for the moment).

Below I have reposted my own proposal, sans pseudo-classes. While strongly 
related, it seems best to keep them as separate proposals for the moment. 
(Sorry for the wasted bandwidth. If I could have pulled my previous 
message, I would have.)

------------------------------------------------
Selector syntax revision proposal for sibling and child relationships 
(second revision)
------------------------------------------------

To refer to an child (immediate descendant), place the '~' between the 
parent selector and the child selector. For example:
   DIV.sect ~ P {...}
would refer to any immediate P child of a DIV with class "sect". This 
should refer to the first, second, fifth, and sixth P, but not the third or 
forth P:
   <DIV class="sect">
      <H3>Section Title</H3>
      <P>first</P>
      <P>second</P>
      <OBJECT>
         <P>third</P>
         <P>forth</P>
      </OBJECT>
      <P>fifth</P>
      <P>sixth</P>
   </DIV>

To refer to any following sibling, place the '|' between the leading 
selector and the following sibling selector. For example:
   OBJECT | P {...}
would refer any sibling P after an OBJECT, which is both the fifth and 
sixth P's in the previous example HTML. I'm not going to say whether this 
is necessary, however I include because it keeps the mean of the operators 
consistent.

To refer and immediate sibling, place both the '|' and the '~' between the 
two selector in either order. For example:
   H3 ~| P {...}
or
   H3 |~ P {...}
both refer to the first sibling following a H3 only if it is a P element. 
The first P meets these requirements in the above HTML.

For both operators, whitespace on either side of the operator is optional. 
For example:
   H3~|P{...}
and
   H3 ~ | P { ... }
are both legal and equivalent.


------------------------------------------------

It should be noted that David's proposal maintains the ability to refer to 
a generic first element, as I pointed out in my previous message.
   OBJECT ~ :first {...}

Andrew n marshall
  student - artist - programmer
    http://www.media-electronica.com/anm-bin/anm
      "Everyone a mentor,  Everyone a pupil"
Received on Friday, 5 December 1997 03:12:28 GMT

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