- From: Hans Meiser <brille1@hotmail.com>
- Date: Mon, 16 May 2005 17:21:13 +0000
- To: www-style@w3.org
I believe that if there's a will, there will also be a way. Circular references can easily avoided by applying a limitation used within any other W3C standard: Don't forward-reference! This will have two effects: * A CSS file may be parsed as usual using a single-pass run. * Circular references can not occur. It's a simple kind of macro expansion: When parsing a back-reference, look-up the corresponding value using /computed/ values from the existing CSS tree. There is no recursion involved. When a back-reference is being read, its value is immediately computed by the application and only this computed values can be back-referenced later, not the original back-reference link. RFC: Option 1) Back-references are not stored as back-references but as computed values. Scripts might access the original back-reference value, though. Option 2) Back-references are stored as back-references and the computed value becomes updated whenever a script changes the referenced value. It's so simple and easy to implement... Pre-processing tools are not an appropriate solution for a comprehensive standard. It's like using a C++ Preprocessor on a C compiler to get C++ functionality. Moreover, it would be a hack to implement certain applications using a pre-processor: For example, an application might provide templates (e.g. s-shop templates) for clients to adapt the design of their shop edition according to corporation needs. In that case you don't want the client to dig into each and every CSS detail. An appropriate solution would be to have him set some basic CSS styles like body fore and background color and have detail CSS styles adapt to these settings immediately without any re-compilation. RFC Axel Dahmen >From: Mikko Rantalainen <mikko.rantalainen@peda.net> >To: Hans Meiser <brille1@hotmail.com> >CC: www-style@w3.org >Subject: Re: Suggestion: Inheritance >Date: Wed, 11 May 2005 08:22:08 +0300 > > >Hans Meiser wrote: >> .emphasize >> { >> background-color: body.color; -- using the computed colour of the >>body element >> color: inherited.background-color; using the computed inherited >>background-colour >> } >> >>The requested feature doesn't necessarily require a parent style sheet or >>prior CSS declarations of any kind as it refers to computed values. > >It's not that easy. What colors should the following result to? > >p { color: span.color; } >.special+p {color: blue; } >span { color: p.color; } > >In addition to that, which selector syntax do you suggest for selecting >which element (or rule?) should the computed value be requested from? > >If you allow something like >p { color: *[has_style(display:table)].background-color; } >there's no limit for the circular references. And if you only allow ID for >the source of the value, I think it's too limited. > >I'm afraid that you're going to be told to use style sheet preprosessing >tools... > >-- >Mikko >
Received on Monday, 16 May 2005 19:30:19 UTC