Hi,
Ich finde es äußerst verwirrend, wenn Werte von CSS-Eigenschaften mit JavaScript geändert werden, weil eben dies nicht gerade offensichtlich ist.
Du findest es offensichtlicher, wenn (wie Dave vorschlug - dem hast Du Dich ja angeschlossen) einem Element eine Klasse per Javascript hinzugefügt wird?
Das macht es doch eigentlich recht einfach. Die Klassen, die im Dokument vorhanden sind, bestimmen das Design. Sowohl für die statischen als auch für die dynamischen Sachen. Eine einfache Regel, die man von vorne bis hinten durchziehen kann.
Andererseits: wenn ich wissen will, warum an irgendeiner Stelle etwas nicht so aussieht wie erwartet, öffne ich meine Dev-Tools, selektiere das entsprechende Element und sehe doch sofort, welche Eigenschaften es hat und welche Selektoren zutreffen.
Also das "in den allermeisten Fällen" die direkte Lösung nicht sinnvoll wäre, dem vermag ich nicht zuzustimmen. In Einzelfällen (sehr viele Elemente) sehe ich das mit Blick auf Performance-Fragen ein.
Performance sowohl im JavaScript-Teil, als auch bei der Anzahl der notwendigen Repaints. Und letzteres betrifft also nicht nur den Fall, dass du viele Elemente hast, sondern wenn jeder einzelne Repaint sehr teuer ist.
Bis die Tage,
Matti