Gerrit: gleichzeitig mehrere Styles ändern

Hallo Ihr,

hab da mal ne grundsätzliche Frage.

Angenommen, ich habe auf einer HTML-Seite 4 Divs - alle mit Hintergrundfarbe grün. Diese weise ich sinnigerweise über CSS mit z.B.
class="farbe"
farbe {background-color: #0f0; }
zu.

Wenn ich jetzt bspw. über eines der Divs mit der Haus hover, sollen alle divs gleichzeitig die Hintergrundfarbe ändern (von mir aus auf rot). Klar, das geht relativ einfach mit Hilfe von JS. Aber in jedem Fall muß ich die Hintergrundfarbe eines jeden einzelnen Divs ändern, richtig?

Was ich suche, ist so was wie: Ich ändere mit JS nur eine CSS-Klasse und alle Divs (oder auch andere Elemente), die mit dieser Klasse verbunden sind, ändern dann gleichzeitig die mit ihnen verbundene Styleangabe. Geht das?

Ich habe gesucht und gegrübelt, bin aber auf keine Lösung gekommen. Vieleicht ist das ja auch eine grundsätzliche Eigenschaft von CSS, daß man das eben nicht kann. Kann mir das bitte einer von Euch bestätigen?!

Ach so, das einzige, was ich für möglich halte, ist, ein anderes Element als das Div zu nehmen - vielleicht h1 oder so - und dann über den Typ-Selektor zu gehen. Habe ich zwar noch nicht ausprobiert, sollte aber funktionieren.

Also, weiß jemand eine alternative Lösung mit Hilfe von Klassen-, ID- oder verschachtelten Selektoren?
Vielen Dank.

Gerrit

  1. Was ich suche, ist so was wie: Ich ändere mit JS nur eine CSS-Klasse und alle Divs (oder auch andere Elemente), die mit dieser Klasse verbunden sind, ändern dann gleichzeitig die mit ihnen verbundene Styleangabe. Geht das?

    nein, du kannst die CSS-Datei nicht mehr ändern, wenn die Seite schon gerendert wurde

    1. Hi,

      nein, du kannst die CSS-Datei nicht mehr ändern, wenn die Seite schon gerendert wurde

      Du kannst eine CSS-"Datei" ändern, bevor die Seite gerendert wurde (sofern nur das betreffende CSS bereits interpretiert wurde), währenddessen, hinterher, ...

      ... also eigentlich immer ... :)

      Gruß, Cybaer

      --
      Man kann doch sehr leicht jenen tugendhaften Menschen begegnen, (...) die eine Art "unkrümmbdernaren Zeigefinger" besitzen, der ständig den kalten Wind des Rechthabens ausströmt. (Wolfgang Huber, Bischof)
      Die Tugend jagt nicht den Teufel, sondern den Sündhaften. Damit wird sie zum Terror. (Hans-Ulrich Jörges, Journalist)
  2. @@Gerrit:

    Ich ändere mit JS nur eine CSS-Klasse und alle Divs (oder auch andere Elemente), die mit dieser Klasse verbunden sind, ändern dann gleichzeitig die mit ihnen verbundene Styleangabe. Geht das?

    Ja.

    Vieleicht ist das ja auch eine grundsätzliche Eigenschaft von CSS, daß man das eben nicht kann. Kann mir das bitte einer von Euch bestätigen?!

    Nein. Aber widerlegen: https://forum.selfhtml.org/?t=169274&m=1105502 ff.

    War der Thread Mehrere (gleiche) ID's ausblenden auf der Forum-Startseite so schwer zu finden??

    Ach so, das einzige, was ich für möglich halte, ist, ein anderes Element als das Div zu nehmen - vielleicht h1 oder so - und dann über den Typ-Selektor zu gehen.

    ?? Was sollte bei 'h1' anders sein als bei 'div'? Vor G^HCSS sind alle M^HElementtypen gleich.

    Live long and prosper,
    Gunnar

    --
    Flughafen in Tempelhof
    findet jeder Hempel doof.
    1. Ich ändere mit JS nur eine CSS-Klasse und alle Divs (oder auch andere Elemente), die mit dieser Klasse verbunden sind, ändern dann gleichzeitig die mit ihnen verbundene Styleangabe. Geht das?

      Ja.

      kannst du mir mal kurz erklären wie du das machst - oder hab ich jetzt einen geistigen aussetzer?

      1. @@suit:

        kannst du mir mal kurz erklären wie du das machst

        Das hab ich doch vorhin – in dem eben verlinkten Thread.

        oder hab ich jetzt einen geistigen aussetzer?

        Ähm ... Sagen wir so: Wenn du wieder da bist und dann immer noch Unklarheiten bestehen, nochmal nachfragen.

        Live long and prosper,
        Gunnar

        --
        Flughafen in Tempelhof
        findet jeder Hempel doof.
        1. oder hab ich jetzt einen geistigen aussetzer?

          Ähm ... Sagen wir so: Wenn du wieder da bist und dann immer noch Unklarheiten bestehen, nochmal nachfragen.

          in der tat, ich bin jetzt davon ausgegangen, dass die klasse selbst geändert wird - das geht natürlich nicht, aber eine kleine funktion die das erledigt und alle ensprechenden elemente anspricht - so weit hab ich nicht gedacht

          1. @@suit:

            in der tat, ich bin jetzt davon ausgegangen, dass die klasse selbst geändert wird - das geht natürlich nicht,

            Was meinst du mit „die Klasse selbst ändern“? Es wird die Klassenzugehörigkeit eines Elements (die 'className'-Eigenschaft eines Objekts) geändert.

            Es werden keine CSS-Regeln für eine Klasse dynamisch geändert – obwohl auch das ginge!

            aber eine kleine funktion die das erledigt und alle ensprechenden elemente anspricht - so weit hab ich nicht gedacht

            ?? Ich glaube, du denkst zu weit. Es wird mit JavaScript ein einziges Element ('body') angesprochen.

            Die anderen werden über CSS angesprochen – mittels Nachfahrenselektoren.

            Live long and prosper,
            Gunnar

            --
            Flughafen in Tempelhof
            findet jeder Hempel doof.
            1. Es werden keine CSS-Regeln für eine Klasse dynamisch geändert – obwohl auch das ginge!

              ja, aber es ist nicht möglich das physikalische css file nach dem rendern der seite zu ändern - das hätte keine auswirkungen mehr, davon bin ich ausgegangen - die ursprüngliche frage wohl etwas falsch verstanden

              ?? Ich glaube, du denkst zu weit. Es wird mit JavaScript ein einziges Element ('body') angesprochen.

              Die anderen werden über CSS angesprochen – mittels Nachfahrenselektoren.

              aah jetzt kann ich dir folgen - du bist ein fuchs ;)

              1. Hi,

                Es werden keine CSS-Regeln für eine Klasse dynamisch geändert – obwohl auch das ginge!

                ja, aber es ist nicht möglich das physikalische css file nach dem rendern der seite zu ändern - das hätte keine auswirkungen mehr

                Nein; aber auch, wenn du per JavaScript HTML-Elementobjekte aenderst oder hinzufuegst, aenderst du damit ja keine "physikalische" Datei mehr.

                Was du aendern kannst, ist die Repraesentation des Dokumentes im Browser - und ebenso kannst du auch das, was der Browser aus einer CSS-"Datei" intern gemacht hat, aendern.

                MfG ChrisB

    2. Hi Gunnar,

      Nein. Aber widerlegen: https://forum.selfhtml.org/?t=169274&m=1105502 ff.

      Ok, entschuldige bitte die lange Antwortzeit, aber bin erst spät wieder an meinen Laptop gekommen. Ja, nach mehrfachem Lesen Deines angegebenen Threads und entsprechendem Nachschlagen im CSS2 Standard - war nicht einfach, den Knoten in meinem Hirn zu entwirren - habe ich es verstanden. Vielen Dank!!!
      Es ist tatsächlich genau das, was ich suchte :-)

      War der Thread Mehrere (gleiche) ID's ausblenden auf der Forum-Startseite so schwer zu finden??

      Na ja, Asche auf mein Haupt, ich habe tatsächlich nicht so genau geforscht. Allerdings liest sich der Thread äußerst kryptisch, wie ich finde.

      Live long and prosper,
      Gunnar

      Same to you,
      Gerrit