- From: David Perrell <davidp@earthlink.net>
- Date: Thu, 4 Dec 1997 19:00:49 -0800
- To: <www-style@w3.org>
Liam Quinn wrote:
>At 12:31 PM 04/12/97 -0800, David Perrell wrote:
>>The spec states that "only one pseudo-element can be specified per
>>selector." No mention of pseudo-classes. Can a pseudo-element apply to a
>>pseudo-class?
>
>Yes, according to the CSS1 grammar (http://www.w3.org/TR/REC-CSS1#appendix-
>b). The pseudo-element must follow the pseudo-class.
Thank you.
I suggest that :first and :last pseudo-classes are preferable to the
double-slash first child syntax described in 6.6[1].
----
:first and :last pseudo-classes
The :first pseudo-class applies to the first among siblings of the same
element type. The :last pseudo-class applies to the last among siblings of
the same element type.
In the following example, the first child P of any element will have no
text-indent. The last child P of any element will have italic text.
P:first { text-indent: 0 }
P:last { font-style: italic }
----
In the following example, a TABLE that immediately follows the first child
H2 of a DIV will be floated right:
DIV ~/H2:first ~TABLE/ { float: right }
TABLE will match even if H2 is not the very first child element of DIV:
<DIV>
<P CLASS=preamble>A bit of preamble</P>
<H2>The following table will float right</H2>
<TABLE>
...
Is the previous selector equivalent to the following?
DIV ///H2/ ~TABLE/ { float: right }
It's not clear to me whether //H2/ matches the first child H2 or the first
child IF it is H2. Whichever, the plethora of slashes can get a mite bit
confusing.
David Perrell
[1] http://www.w3.org/TR/WD-CSS2/selector.html#h-6.6
Received on Thursday, 4 December 1997 22:01:10 UTC