molily: Mit JavaScript auf Css Eigenschaften zugreifen

Beitrag lesen

document.getElementsByClassName("umrandung").style.marginLeft = "100mm";

getElementsByClassName liefert dir, wie der Name schon andeutet, nicht ein Element, sondern eine Liste von Elementen. Diese Liste hat keine style-Eigenschaft. Die einzelnen Elemente in der Liste hingegen haben eine. Du müsstest die Liste also durchlaufen:

var elements = document.getElementsByClassName("umrandung");  
for (var i = 0, l = elements.length; i < l; i++) {  
  elements[i].style.marginLeft = "...";  
}

Einfacher geht es wie gesagt, wenn du einfach eine zweite CSS-Regel mit einem Klassen-Selektor einfügst, welche alle Nachfahren-Elemente mit der Klasse umrandung formatiert:

.dickeumrandung .umrandung { ... }

(Wählt alle Elemente mit der Klasse umrandung aus, wenn sie in einem Element mit der Klasse dickeumrandung verschachtelt sind.)

Dann kannst du einfach
document.body.className += " dickeumrandung";
notieren und damit sämtliche Elemente umformatieren. Das Umschalten wird damit vereinfacht.

Mathias