- From: Simon Sapin <simon.sapin@exyr.org>
- Date: Mon, 20 May 2013 23:13:46 +0800
- To: Cameron McCormack <cam@mcc.id.au>
- CC: www-style list <www-style@w3.org>, "Tab Atkins Jr." <jackalmage@gmail.com>
Le 20/05/2013 16:36, Cameron McCormack a écrit :
> Say you have this:
>
> <style>#a { var-x: ( url(http://example.org/</style>
>
> Is this variable declaration valid or is it dropped? If it is valid, is
> the computed value of this property
>
> 1. "( url(http://example.org/))"
> 2. "( url(http://example.org/)" or
> 3. "( url(http://example.org/"
>
> ? I think the answers should be "valid" and "1", but I don't think it
> is clear from the spec.
EOF is a valid way to implicitly close the () block:
http://www.w3.org/TR/CSS21/syndata.html#unexpected-eof
In Syntax 3 this rule is generalized to URL tokens, but in 2.1 I think
this would give a BAD_URL token.
It isn’t clear to me either what would cause a declaration to be
dropped. See:
http://lists.w3.org/Archives/Public/www-style/2013Apr/0312.html
As to the computed value, in my mental model a list of component values,
as defined in css-syntax and css-values. In this case, it’s a whitespace
token followed by a () block which contains a whitespace token followed
by a URL or BAD_URL token.
Now, how this computed value is *serialized* into a string is a separate
issue. Assuming a URL token rather than BAD_URL, I think it would be 1.
because there is no reason to preserve the information that a () block
was implicitly closed. But indeed, that is not specified either in what
little we have spec’ed on serialization:
http://dev.w3.org/csswg/css-syntax/#serialization
Tab, is this section meant to be a normative definition of
serialization? Should it (eventually) be referenced from CSSOM?
Cheers,
--
Simon Sapin
Received on Monday, 20 May 2013 15:14:18 UTC