Cheatah: Unterschied zwischen externer und interner CSS-Definition

Beitrag lesen

Hi,

Ein Beispiel: Ich will alle Nodes durchgehen, um herauszufinden, ob diesen eine Pseudeklasse :before oder :after im externen(!) Stylesheet zugewiesen wurde. Ist dies der Fall, will ich wiederum deren zugewiesene Eigenschaften/Werte auslesen, um diese per DOM an den richtigen Stellen einzufügen, damit der Trottel von IE damit etwas anfangen kann. Deutlich genug? ;-)

Du musst im Grunde eine CSS-Engine in JavaScript komplett nachbilden. Vermutlich geht dies am einfachsten, indem Du den externen CSS-Code analysierst und in eine Art "vorkompilierte Objektstruktur" umwandelst, mit welcher Du dann gezielt(er) nach passenden Nodes suchen oder aber zumindest leichter prüfen kannst, ob für eine Node ein CSS-Selektor angegeben wurde.

Etwas praktischer gesagt: Nimm Dir (jeweils) einen Selektor, gehe ihn von links nach rechts durch, ermittle alle dazu passenden Nodes (ausgehend von Menge der weiter links gefundenen Nodes). Am Ende hast Du alle Elemente, die verändert wurden. Bei Bedarf musst Du nun noch die Vererbung beachten - unter Berücksichtigung der Ermöglichung des Überschreibens in späteren Elementen, wieder durch beliebig komplexe Vorgänge und mit definierten, aber nicht trivialen Wertigkeiten.

Cheatah

--
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes