- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Thu, 16 Oct 2008 05:01:33 -0700
- To: www-style@w3.org
L. David Baron wrote:
> I found a few issues in the description of the syntax of
> :nth-child() in
> http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#nth-child-pseudo
>
> I found two cases where the normative description of the syntax
> disagrees with the examples given. I think the intent is pretty
> clear from the examples and we should fix the normative text. In
> particular, I propose:
>
> (1) Changing:
> # When <var>a</var>=0, the <var>a</var><code>n</code> part need
> # not be included, so the syntax simplifies to
> # <code>:nth-child(<var>b</var>)</code> and the last example
> # simplifies to <code>:nth-child(5)</code>.
> to read:
> # When <var>a</var>=0, the <var>a</var><code>n</code> part need not be
> # included. When <var>a</var><code>n</code> is not included, the
> # <code>+</code> sign before <var>b</var> (when allowed) may also be
> # omitted. In this case the syntax simplifies to
> # <code>:nth-child(<var>b</var>)</code> and the last example
> # simplifies to <code>:nth-child(5)</code>.
> Without this change, I think the normative text forbids
> :nth-child(5), requiring instead that the author write
> :nth-child(+5).
Fixed.
> (2) Changing:
> # If b=0, then every ath element is picked. In such a case, the b
> # part may be omitted.
> to instead say:
> # If b=0, then every ath element is picked. In such a case, the +b
> # part may be omitted.
> Without this change, it seems like authors would be required to
> write :nth-child(2n+) rather than :nth-child(2n).
Fixed. Wrote
# If b=0, then every ath element is picked. In such a case, the +b
# (or -b) part may be omitted unless the a part is already omitted.
> There are also two issues that I find unclear:
>
> (3) Is -0 allowed as a value for a and/or b? If so, the sentence:
> # When the value b is negative, the "+" character in the
> # expression must be removed (it is effectively replaced by the
> # "-" character indicating the negative value of b).
> should be clarified to say that :nth-child(n+-0) is not allowed. If
> not, the sentence:
> # The a and b values must be zero, negative integers or positive
> # integers.
> should probably clarified to say that zero may not be preceded by a
> minus sign.
Fixed by replacing
# When the value b is negative
with
# When the value b is preceded by a negative sign
> (4) The spec says:
> # If both a and b are equal to zero, the pseudo-class represents
> # no element in the document tree.
> When both are zero, the spec technically allows both to be omitted.
> This means :nth-child() is the same as :nth-child(0) and
> :nth-child(0n) and :nth-child(0n+0). Is this intentional, or should
> it only be possible to omit one and not both (i.e., omitting both
> would be a syntax error)? Either way, I think it should be stated
> explicitly.
Clarified by adding "unless the {a|b} part is already omitted" to both
statements about omitting parts.
~fantasai
Received on Thursday, 16 October 2008 12:02:16 UTC