wisch: Verwendung von Style-Attributen in JavaScript

Beitrag lesen

Guten Tag,

Anlass ist die Antwort von Gunnar Bittersmann in einem anderen Thread:: "Der Fehler ist, überhaupt CSS-Eigenschaften direkt mit JavaScript zu ändern."

Der Anwendungsfall ist das hier schon mal diskutierte Problem mit großen HTML-Tabellen und fixierten Kopfzeilen: Fixierte Tabellen-Kopfzeile. Die Lösung soll aber so funktionieren, dass fixierte Kopf- und Fußzeilen und auch linke Spalten stehen bleiben, wenn die Tabelle an den jeweiligen Fensterrand des Browsers kommt. Beispiel: Beispiel für Tabellen mit fixierten Kopf- und Fußzeilen und Spalten.

So etwas funktioniert m.E. nur mit einem JavaScript-Listener - auch wenn ich die Diskussion bei Mozilla.org kenne: Die thead- und tfoot-Bereiche werden mit cloneNode() kopiert und dann je nach Bedarf angezeigt und positioniert. Zusätzlich müssen die Zellenbreiten manuell kopiert werden. Ich bin gerade dabei, das Ganze in hier zu beschreiben: Arbeitsstand zu fixierten Kopfzeilen etc..

Jetzt zu meinem Problem: Ich bekomme das nur vernünftig hin, wenn ich konsequent in die .style-Attribute der kopierten Nodes schreibe:

  1. Anders bekomme ich die Zellenbreiten nicht stabil kopiert. Es geht nur, wenn ich style.maxWidth und style.minWidth gleichzeitig setze.
  2. Die Lösung soll in der Anwendung einfach und frei von Nebeneffekten sein. Ein einfaches new TabellenHeader("Tabellen-ID"); soll reichen, um das Ganze in Gang zu bringen.

Deshalb meine Frage: Was spricht dagegen, dynamisch ermittelte Werte in .style-Attributen zu setzen? Ich habe ja, Gunnar sei Dank, verstanden, dass ich besser das hidden-Attribut verwende, um die Anzeige zu steuern (statt style.display). Aber in den anderen Fällen, inbesondere bei der Dimensionierung und Positionierung schein mir das Konzept bei den .style-Attributen ausgereifter und besser gepflegt. M.E. verändere ich auch keine Layout-Informationen, die in den CSS-Code gehören, sondern dynamisch erzeugte Elemente, die nur am hilfsweise am Bildschirm benötigt werden.

Aber ich lasse mich auch gern vom Gegenteil überzeugen.

Mit Dank und vielen Grüßen

Wilfried

akzeptierte Antworten