- From: fantasai <fantasai@escape.com>
- Date: Sat, 10 Mar 2001 01:23:11 -0500
- To: www-style@w3.org
I am arguing for - the removal of :nth-last-child etc., with negative values taking its place - the adoption of Jonas Sicking's range proposal[1] As this has been sent well after the March 1st deadline, it is an *unofficial* comment. I just figured it would be of more use on www-style than swimming around in my head. IMO, :nth-last child is an unnecessary pseudo-class; it increases the spec without adding to it, and it only means more for CSS coders to memorize and implementors to implement. Allowing negative vlues to mean "count from the end" can easily replace its functionality. Negatives are logical because a) The negative sign means "the opposite of" Applied to indexing: the opposite of first is last. The opposite of second is second from the end. b) Other languages have already set a precedent for this use of negative parameters. The only thing :nth-last-child allows that is not addressed by negative values is the ability to restrict the upper bound of the increment, as in :nth-child(-3n + 15) However, this is IMO more intuitively addressed by using the range proposition in a second selector: :nth-child(3n):nth-child(1..15) Very few people would start at the fifteenth element and count backwards by threes. They're more likely to start at 3 and count by threes until 15; they're more likely to express their intent as "every third element out of the first 15". There is the issue of increasing the weight of the selector, but as Jonas pointed out, people are at least as likely to select elements 3 through 5 as every third one up to 15. Selecting 3 to 5 in the current WD requires two selectors, as shown by Tantek Celik[2], whereas it only requires one with the range syntax-- an even trade-off. The range syntax also makes the relatively simple task of selecting the first five elements easier to read. Compare: :nth-child(1..5) :nth-child(-n + 5) Selectors for any sort of grouping are much easier both to write and maintain with the range syntax, and it makes even Ian Hickson's edge case[3] plausible: :nth-child(200n + 1..100) ~fantasai [1] Sicking, Jonas. "css3 :nth-child() WD", www-style (2001-02-28) http://lists.w3.org/Archives/Public/www-style/2001Feb/0121.html [2] Celik, Tantek. "Re: css3 :nth0-child() WD", www-style (2001-02-28) http://lists.w3.org/Archives/Public/www-style/2001Feb/0123.html [3] Hickson, Ian. "Re: New version of the Selectors module of CSS3", www-style (2000-10-06) http://lists.w3.org/Archives/Public/www-style/2000Oct/0057.html
Received on Saturday, 10 March 2001 01:22:04 UTC