W3C home > Mailing lists > Public > www-style@w3.org > May 2008

Re: Background with multiple property values

From: Boris Zbarsky <bzbarsky@MIT.EDU>
Date: Fri, 16 May 2008 10:22:19 -0500
Message-ID: <482DA6AB.2080401@mit.edu>
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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:55:06 GMT