Early results on injecting style sheets into DOM
Noah Botimer
botimer at umich.edu
Mon Oct 13 17:27:23 UTC 2008
Agreed. This is awesome knowledge to capture. I've been generally
terrified of trying to adjust stylesheets on the fly, and it forces
me to pre-load and disable a bunch of junk I don't want on that
rendering. The other problem with that is that the container has to
know the contents: a classic, obnoxious dependency. All of your work
is well appreciated!
Thanks,
-Noah
On Oct 10, 2008, at 5:44 PM, Antranig Basman wrote:
> Eli - this is really fantastically useful research, and addresses a
> number of
> crucial issues that we are worried about. It, correct me if I am
> wrong, looks
> "a bit grim" for any possibly "subtle" usage of CSS in this model -
> is it
> fair to say that one must expect that the effects of CSS injection
> to be
> treated as if they were essentially equivalent to styling rules with
> !important written on them? Or is it even more complex than that.
>
> Jacob - does it look like our proposed skinning system will be able
> to function
> in such an environment, or will we have to insist that any users of
> our
> style of ruleset have all of their CSS sheets physically written
> into the
> document by the server?
>
> Eli - would it be possible to detect if there is any difference in
> behaviour
> from the @import versus the <link style of referencing CSS?
>
> Look forward to the results of your future testing. Should we
> create an area
> in our Confluence where we can have a "quirksMode" like
> "scoreboard" of the
> different browsers under different situations?
>
> Marvellous stuff,
> Boz.
>
>
> Eli Cochran wrote:
>>
>> Background:
>> The skinning team is looking at ways to inject style sheets into
>> DOM at run-time as a
>> way to transform pages that we don't know very much about.
>>
>> Early results:
>> I'm still in the midst of my tests on injecting CSS style sheets
>> into the head using
>> Javascript.
>>
>> The good news is that it works on FF3 and Safari3 on the Mac and
>> FF3, IE6 and IE7 on
>> Windows. After the page has loaded you can inject a style sheets
>> into the HEAD and the
>> style changes are reflected in the DOM. Sweet!
>>
>> The bad news is that only FF3 and Safari seem to respect the CSS
>> hierarchy. Inject a
>> style sheet that sets your text to blue after all the other style
>> sheets in the HEAD,
>> and your text changes to blue, and then if you inject a style
>> sheet that changes all the
>> text to red before all the style sheets in the HEAD, your text
>> stays blue. Which is as
>> it should be, since the blue sheet still comes after the red sheet
>> in the hierarchy.
>> Happiness!
>>
>> But under the IEs if you follow the same steps, all your text
>> turns red. Whatever styles
>> get injected last, win, even if they were injected higher up in
>> the hierarchy. Sadness!
>>
>> Interestingly, if you inspect the DOM as reported to Debugbar from
>> IE, the stylesheets
>> are getting loaded into the DOM in the correct order, they just
>> aren't being parsed
>> correctly.
>>
>> This is still a technique that may be useful to us, but one of the
>> things that we could
>> not do is inject a CSS reset before all the other style sheets. We
>> would then crush any
>> subsequent styling.
>>
>> I still want to test what happens if I inject stylesheets after
>> the HEAD loads but
>> before the BODY loads and a few other things.
>>
>> More to come...
> _______________________________________________
> fluid-work mailing list
> fluid-work at fluidproject.org
> http://fluidproject.org/mailman/listinfo/fluid-work
>
>
More information about the fluid-work
mailing list