gleichzeitig mehrere Styles ändern
Gerrit
- css
0 suit0 Cybaer
0 Gunnar Bittersmann0 suit0 Gerrit
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
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
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
@@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
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?
@@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
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
@@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
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 ;)
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
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