- From: Bert Bos <bert@w3.org>
- Date: Mon, 17 Mar 2008 18:05:33 +0100
- To: www-style@w3.org
On Wednesday 12 March 2008 13:41, Andrei Polushin wrote: > 2008/3/12, fantasai wrote: > > I'll note that > > 3cm-2cm > > will be parsed as a single DIMENSION token I seem to remember that we discussed this during some meeting and concluded that white space (or a comment) would indeed be needed between a dimension and the following minus sign and that we would just have to warn users about that... > > and > > 3cm -2cm > > will be parsed as two DIMENSION tokens. Is that what we want? Is > > whitespace required around minus and plus signs to treat them like > > operators or is tokenization different inside calc() like it is > > inside :nth-child()? > > I propose changing the grammar around the {ident} as follows: > > nmstart [_a-z]|{nonascii}|{escape} > nmchar [_a-z0-9-]|{nonascii}|{escape} > > alpha [a-z]|{nonascii}|{escape} > alnum [_a-z0-9]|{nonascii}|{escape} > > restrict {alpha}{alnum}* > simple {nmstart}{nmchar}* > prefixed [_-]{restrict}[-]{simple} > ident {simple}|{prefixed} > unit {restrict}|{prefixed} > > %% > > {num}{unit} {return DIMENSION;} > > That is, the unit name cannot contain '-', unless that unit name > starts with either '-' or '_', as described by > http://www.w3.org/TR/2007/CR-CSS21-20070719/syndata.html#vendor-keywo >rds That will indeed make "3n-1" parse as DIMEN(3n) + DELIM(-) + NUMBER(1), but parsers still have to check that the DIMEN is a whole number with an "n" or "N"; and "n-1" remains an IDENT. (Of course, "n-1" won't occur very often in practice. :-) ) So I think there is no benefit for nth-child. It also doesn't remove the need for a space after 'mod' in 'calc(10% mod-2em)', although it avoids many other possible user errors: calc(10em-2px). But it's a change to the core grammar, a very dangerous thing to do: 1) Are there any vendor extensions that we don't know about and that do not have a dash after the vendor prefix? CSS 2.1 currently says they *should* have a dash, but Andrei's patch makes that into a *must*. 2) Are there any languages that use the CSS syntax and that use units with a dash? CSS itself doesn't have such units, but we shouldn't break something that relies on our promise to not change the syntax. 3) Is CSS itself never going to add units with a dash? Bert -- Bert Bos ( W 3 C ) http://www.w3.org/ http://www.w3.org/people/bos W3C/ERCIM bert@w3.org 2004 Rt des Lucioles / BP 93 +33 (0)4 92 38 76 92 06902 Sophia Antipolis Cedex, France
Received on Monday, 17 March 2008 17:06:11 UTC