- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Fri, 16 May 2008 10:22:19 -0500
- To: Alan Gresley <alan@css-class.com>, www-style Mailing List <www-style@w3.org>
Alan Gresley wrote:
> All implementations will parse it correctly. If you have.
>
> background:red url(image.png)0 0 no-repeat;
>
> All implementations will parse it except IE5~IE8 (that I can test
> locally). I believe that IE is correct here since white-space separated
> values are a must with other CSS properties.
They're only a must insofar as they affect tokenization. Here are the relevant
parts of section 4.1.1:
declaration : property S* ':' S* value;
value : [ any | block | ATKEYWORD S* ]+;
any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING
| DELIM | URI | HASH | UNICODE-RANGE | INCLUDES
| DASHMATCH | FUNCTION S* any* ')'
| '(' S* any* ')' | '[' S* any* ']' ] S*;
Note that nowhere after the ':' is whitespace required. Most of the tokens
involved are only terminated by whitespace, but at least URI and STRING are not.
So for example:
prop: "xyz"0;
is equivalent to
prop: "xyz" 0;
per this grammar.
It seems to me that you're thinking of |value| being defined more as as:
value : [ any | block | ATKEYWORD ] trailing-value* S*;
trailing-value : S+ [ any | block | ATKEYWORD ];
But that's not at all what the spec says right now.
-Boris
Received on Friday, 16 May 2008 15:23:09 UTC