Re: Background with multiple property values

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