Lukas Hänel: Wie CSS Klassen Eigenschaften ändern?

Kann ich eine CSS Klasse, die im style bereich definiert ist mit JavaScript dynamisch ändern? Das Problem besteht, da ziemlich viele Elemente diesen Klasse haben und es unterschiedlichste Tags sind. Ansonsten könnte man ja erst getElementsByTagName und dann mit einer Schleife die Eigenschaft einzeln ändern. Ach, mir fällt gerade ein, dass ich schon einen Array in meinem Script habe, der alle Tags mit Class Attribute enthält, insofern werde ich warscheinlich die eben genannte Variante nutzen, da ich mir nicht vorstellen kann, dass es eine Lösung gibt. Ich bin, sonst hätte ich den Beitrag nicht abgeschickt, trotzdem an einer Lösung interessiert.

  1. hallo Lukas,
    <!-- das ist eine Anrede, auf die hier im Forum großer Wert gelegt wird //-->

    Kann ich eine CSS Klasse, die im style bereich definiert ist mit JavaScript dynamisch ändern?

    prinzipiell ja. Dazu gibts in Javascript den Befehl "document.write"

    Das Problem besteht, da ziemlich viele Elemente diesen Klasse haben und es unterschiedlichste Tags sind. Ansonsten könnte man ja erst getElementsByTagName

    mit getElementsBy... kriegst du keinen Zugriff auf "document.write"-Bereiche im Script selbst

    Grüße aus Berlin

    Christoph S.

    <!-- das ist eine Verabschiedung, auf die ebenfalls hier im Forum sehr viel Wert gelegt wird //-->

    1. Hallo Christoph

      Entshuldigung für meine kurze Form, ich ... lege keinen Wert auf solche Formen.
      Du hast mich aber ein wenig falsch verstanden, bzw. deine Antwort war mir schon klar.
      Mit dynamisch meinte ich eigentlich die Definition von DHTML

      "Dynamisch" bedeutet dabei: bei einem Anwenderereignis wie einem Mausklick auf die Überschrift oder automatisch zeitgesteuert, etwa nach drei Sekunden.

      Ich habe einen Schalter (habe ich das nicht geschrieben? - upps frühere Version) eingebaut, mit dem man die klassen eigenschaft umschalten soll.

      Das Problem ist aber gelöst, ich habe für einen anderen Zweck ein Array erstellt, das alle Elemente enthält, die mit der entsprechenden Klasse formatiert sind.
      Dieses Array hätte man, dann allerdings nur mit einer einzigen Tag-Art (nodeName) von Elementen mit der Methode getElementsByTagName erstellen lassen können.
      Nun habe ich eine Schleife erstellt, die das Array durchläuft und jedem Element die Style Eigenschaft zuweißt.

      Grüße aus Dresden

      Lukas Hänel
      <!--  ich bin ein vbb gewöhnt, bei dem standardmäßig eine Signatur erscheint.  -->

    2. Hallo,

      manchmal reicht der Platz nicht mehr für ein abschliessenden Gruss aus :)
      Oder bei der Letzten kurzfristigen Änderung vorm Absenden wurde der Abschiedsgruss gecancelt. *ggg*

      Unratsam ist es auch Klassen zu ändern, indem man document.write einsetzt.
      Da eine CSS-datei besser extern eingerichtet und mit Link geladen wird,
      wird das etwas schwierig sein.

      Mit document.Stylesheets kann man Zustände abfragen und ändern. document.classes.className.tagName.probertie beim Netscape 4.x.
      Stylesheets sind nämlich im Prinzip nichts anderes als eine JavaScript-Objektdefinition in Arrayform.

      Liebe Grüsse aus Konstanz am Bodensee um 1:20 Uhr nachts und es regnet gerade draussen und im Fernseher läuft auch nur Müll.

      Michel (MichelM)

      1. ähm, ja, MichelM ...

        manchmal reicht der Platz nicht mehr für ein abschliessenden Gruss aus :)
        Oder bei der Letzten kurzfristigen Änderung vorm Absenden wurde der Abschiedsgruss gecancelt. *ggg*

        och, Ausreden, tstststs ... wir wollen doch die jungen, zukunftzsfähigen Menschen, die hier im Forum was mal schnell nachfragen, auch bissel auf die bürgerliche Gesellschaft vorbereiten ;-)

        Unratsam ist es auch Klassen zu ändern, indem man document.write einsetzt.
        Da eine CSS-datei besser extern eingerichtet und mit Link geladen wird,
        wird das etwas schwierig sein.

        da haste recht. Wenn man aber eine "dynamische Änderung" als Möglichkeit vorsieht, sollte man die CSS eben nicht als _feststehende_ externe Datei, sondern gleich über ein JS-file (das diese CSS generiert) einbinden.

        Stylesheets sind nämlich im Prinzip nichts anderes als eine JavaScript-Objektdefinition in Arrayform.

        wirklich ??? Was sagt das W3C dazu?

        Liebe Grüsse aus Konstanz am Bodensee um 1:20 Uhr nachts und es regnet gerade draussen und im Fernseher läuft auch nur Müll.

        in meinem Fernseher (naja, TV-Karte am Rechner) läuft grade vom Recorder "Indiana Jones 3", was ich nicht für Müll halte ;-)

        Grüße aus Berlin-Mitte (wo es grade nicht mehr regnet, aber ungehörig kalt geworden ist)

        Christoph S.