- From: Daniel Glazman <glazman@netscape.com>
- Date: Thu, 16 Jan 2003 10:25:25 +0100
- To: www-html@w3.org
Boris Zbarsky wrote:
>Sure there is and a major one. Compare the following two chunks of ECMAScript:
>
> document.getElementById("myMovableDiv").style.left = "50px";
>
>and
>
> var set = false;
> var rules = document.styleSheets[0].cssRules;
> var len = rules.length;
> while (var i = 0; i < len; ++i) {
> var rule = rules[i];
> if (rule.selectorText == "#myMovableDiv") {
> rule.style.left = "50px";
> set = true;
> break;
> }
> if (!set) {
> document.styleSheets[0].insertRule("#myMovableDiv { left: 50px }", rules.length);
> }
>
>
>
This code is not even complete, Boris...
Why do you pre-suppose there is only one stylesheet in the document ?
Why do you pre-suppose document.styleSheets[0] corresponds to a
stylesheet that the tool is able to save ? Why do you pre-suppose the
rule you are looking for is directly a child of the sheet and not itself
contained in an at-media rule for instance ? And so on...
The only way to simplify that would be the availability of a DOM method
taking two arguments : (a) an element (b) a CSS property name, and
returning the CSS rule responsible for the computed value of the
property for that element. In other terms, a reverse cascade.
Without that, dealing with style rules to set one individual property is
a nightmare compared to the style attribute.
</Daniel>
Received on Thursday, 16 January 2003 04:26:08 UTC