- From: Bert Bos <bert@w3.org>
- Date: Thu, 15 Oct 2009 21:45:00 +0200
- To: Yves Lafon <ylafon@w3.org>
- Cc: www-style@w3.org
On Thursday 15 October 2009, Yves Lafon wrote: > Hi, > I am looking at the media-queries CR document [1], form a CSS > Validator standpoint, and I am wondering why the syntax of expression > is '(' .. ')' instead of using a function name like 'feature(' ... > ')'. I think it was never considered. So the question would more properly be the opposite: why is a functional notation better? There is no absolute answer, but here are a couple of considerations: - Media Queries are used in CSS, but not only there. They also occur in HTML (in the LINK and STYLE elements) and in XML (in the xml-stylesheet PI). They are expressly designed to be used in yet other places that we don't know about. Parentheses are a common vocabulary that works almost anywhere. - You may think that "feature()" is more readable, I think it just adds redundancy and makes many expressions too long to fit nicely on one line. :-) - Parentheses are normal delimiters in CSS. They appear in the grammar alongside functional notations, and together with the similar square brackets. The grammar wasn't changed in any way to accommodate Media Queries. - We indeed haven't used parentheses much in CSS, although we've been on the brink of using them several times, because we always hesitated whether we would not find a better use for them later, where their brevity would be even more appreciated. We didn't have that hesitation for Media Queries. They will also appear inside expressions, i.e., inside the calc() functional notation. > > Changing the parser in one place, for handling media-queries is one > thing, but adding support for '('..')' introduce lots of new error > handling in other part of the spec for errors like > color: rgb (1,2,3); (instead of rgb(1,2,3);) But the validator already handles that, as far as I know. "rgb(" is one token, while "rgb (" is a pair of tokens. You get an error message that rgb isn't a valid color and that the rest of the value cannot be parsed. Or do you mean that you want to add specific heuristics so that the error message can say that there is probably a space too many? > > plus 'feature(...)' seems more readable than '(..)' (but that's > subjective > > :) ). Indeed it is. :-) > > [1] http://www.w3.org/TR/2009/CR-css3-mediaqueries-20090915/ 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 Thursday, 15 October 2009 19:45:32 UTC