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

Re: WebKit now supports CSS Variables

From: Daniel Glazman <daniel.glazman@disruptive-innovations.com>
Date: Tue, 24 Jun 2008 23:27:58 +0200
Message-ID: <486166DE.1000703@disruptive-innovations.com>
To: Håkon Wium Lie <howcome@opera.com>
Cc: Maciej Stachowiak <mjs@apple.com>, www-style list <www-style@w3.org>

Håkon Wium Lie wrote:
> Also sprach Maciej Stachowiak:
> 
>  > >>> style sheet 1: @variable { X: 10px }
>  > >>> style sheet 2: @variable { X: none }
>  > >>> style sheet 3: div { width: var(X) }
> 
>  > Your above situation is analogous to the following:
>  > 
>  > style sheet 1: div.someclass { width: 30px; }
>  > style sheet 2: div#someid { width: 10px; }
>  > style sheet 3: div { width: 20px; }
> 
> It's different because because the validity of the declarations is
> known at parse-time. Invalid declarations should be dropped, and not
> be visible in the DOM.

Both are perfectly valid Håkon...

The extended grammar for CSS variables says that width can take for 
argument the new functional notation var(<arg>) where <arg> is an
ident. That's the case... You are speaking of an extra rule *outside*
of the CSS parser *or* you are saying the declaration of a variable
extends the CSS parser. If you have the latter in mind, that's certainly
a first in twelve years of CSS right ?

The problem you described is precisely like setting a illegal value
for a given property through the DOM : elt.style.visibility = "glass".

No, seriously, nobody here thinks of making the parser extensible by
variables declarations. So the rules above _are_ all valid and the only
option is value resolution after parsing. If you don't do that, then
you have constants, not variables. Because you will never be able to
assign again the variable's value since it's evaluated at parse time !

</Daniel>
Received on Tuesday, 24 June 2008 21:28:40 GMT

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