- From: Andrew n marshall <amarshal@usc.edu>
- Date: Thu, 4 Dec 1997 23:08:52 -0800
- 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 UTC