W3C home > Mailing lists > Public > www-style@w3.org > January 2012

Re: CSS Referencing

From: Glenn Adams <glenn@skynav.com>
Date: Mon, 16 Jan 2012 12:47:23 -0700
Message-ID: <CACQ=j+e_1XrgBxSciUeyee2rc9LRB930TepRbkGBvrH3BGC=UA@mail.gmail.com>
To: brice.parent@websailors.fr
Cc: www-style@w3.org
you might wish to review what was done in TTML [1] regarding style
reference chains (albeit not using CSS grammar)

[1] http://www.w3.org/TR/ttaf1-dfxp/#semantics-style-resolution

On Mon, Jan 16, 2012 at 8:36 AM, Brice PARENT <brice@websailors.fr> wrote:

> I think this is a two part proposal :
> 1 - allow to reference a property to another one
> 2 - ask for those reference to be able to create bidirectionnal
> relationships.
>
> For the first, before being lead to this list, i've created the list
> http://lists.w3.org/Archives/Public/www-style/2012Jan/0673.html.
> I copy the examples i proposed here just to be clear :
>
> /* simple pointer : */
> ..example1{color: as(.model);}
> /* The text color is red (as found in .model{color:red;}) */
>
> /* complete pointers */
> ..example2{margin: as(.model?border-width); background-color:
> as(.model?border-color);}
> /* The margin is 2px on all sides (as found in
> ..model{border-width:2px;}), and the background color is blue (as found
> in .model{border-color:blue}) */
>
> /* inner pointer */
> ..example3{color:grey; border: 1px dashed as(?color);}
> /* The border-color is grey (as found in .example3{color:grey;}) */
>
> I would just drop any properties that would create a loop like
> .b{width:as(.a);}
> .a{width:as(.b);}
>
> About the fact that we could always create a shared css class containing
> the common values, i agree but it kills some of the benefits of using
> css : We either have to create lots of classes (smallText, biggerText,
> hugeText, smallMargins, ...) and have many classes placed on every
> element, which would lead to setting the style right in the html, or we
> have to create a very big css file containing every single case for
> every common properties (div.test1 table.test2 td:first-child, div.test3
> ul, div.test4 ul:hover...{color:red}), and it wouldn't allow to share a
> color and a background color.
>
> This referencing would shorten a lot the css selectors, and would help
> to have a simple new kind of inheritance.
>
> It should not be seen as the programming goto, but more like a variable,
> which may be called from anywhere. Every element has a set of variables
> that always have some values (default or inherited at the beginning),
> that we set using the css propoerties, and some of these properties are
> just like pointers to those variables. The values that are read are
> never computed values, but always the values that are asked (default,
> inherited, set, or pointed).
>
> About the second point, i agree that it may be more complicated, and
> that's not that much what i asked for.
>
>
Received on Monday, 16 January 2012 19:48:13 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:48 GMT