- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Mon, 30 Apr 2012 13:07:10 -0400
- To: www-style@w3.org
On 4/30/12 12:49 PM, Tab Atkins Jr. wrote: >> # nth >> # : S* [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? | >> # ['-'|'+']? INTEGER | {O}{D}{D} | {E}{V}{E}{N} ] S* >> # ; > > It's a browser bug. To restrict it in the Grammar, we'd have to have > context-sensitive placement of comments. Well, hold on. You're already doing context-sensitive stuff going on here, no? In particular, 1n is a single DIMENSION token, not an INTEGER token followed by the symbol N, per http://www.w3.org/TR/css3-selectors/#lex as far as I can tell. So what this prose is saying is that inside the value of the :nth-* pseudos a completely different tokenizer from the one used for the rest of Selectors must be used, if I understand it correctly. What you _could_ do instead, if desired, is to use the same tokenizer but instead of "INTEGER? {N}" use "{N} | DIMENSION" and require that the ident in the DIMENSION be "n". Or define a token similar to the PERCENTAGE token as "{num}{N}" and use that token. Of course in that case the behavior would just happen to match what browsers do right now, without any need for preserving comment tokens, or anything like that. -Boris
Received on Monday, 30 April 2012 17:07:44 UTC