On 1/27/2011 11:21 AM, Tab Atkins Jr. wrote:
On Wed, Jan 26, 2011 at 6:47 PM, Brett Zamir<[email protected]> wrote:
While it can already be done dynamically by iterating through
document.stylesheets, in order to allow full separation of presentation from
content in a convenient way and foster best practices, I think it would be
helpful to have a built-in method to obtain a CSS property for a given
selector.
This is particularly needed by canvas which has no inherent way of obtaining
styles set in a stylesheet, but would also be useful for HTML and SVG where
setting a class dynamically may not always be sufficient, such as in a
dynamically powered transition which wants to obtain starting and ending
style properties.
(This issue might also highlight some gaps in CSS, with, for example, there
being no exact equivalent for say shadow color as used in canvas, but even
without such changes to CSS, the proposed method would still be useful.)
What are you actually trying to accomplish? I can't tell from this
email what data you're trying to get, precisely, and nowhere do you
state what problem you're trying to solve.
I'll give a more concrete example, but I did state the problem:
separation of concerns, and the data I want, getting a CSS property for
a given selector.
For example, we want the designer guy to be able to freely change the
colors in the stylesheet for indicating say a successful transition
(green), an error (red), or waiting (yellow) for an Ajax request. The
JavaScript girl does not want to have to change her code every time the
designer has a new whim about making the error color a darker or lighter
red, and the designer is afraid of getting balled out for altering her
code improperly. So the JavaScript girl queries the ".error" class for
the "background-color" property to get whatever the current error color
is and then indicates to an animation script that "darkred" should be
the final background color of the button after the transition. The
retrieval might look something like:
document.getCSSPropertyValue(".error", "background-color"); // 'darkred'
While the JavaScript would choose the intermediate RGB steps to get
there in the fashion desired by the developer.
Yes, there are CSS transitions, or maybe SVG, but this is for cases
where you want control tied to JavaScript.
Or, for canvas specifically. You draw an animated "Hello" and want the
designer to be able to choose the fill color. You want to be able to
query the stylesheet easily to get the styling info.
Brett