CSS Angaben zur Laufzeit erzeugen und entfernen
Mario
- javascript
Hi,
hat Jemand eine Anregung wie ich zur Laufzeit einer HTML Datei extra CSS unterbringe?
Zur Erklärung:
Bereits vorhandenes CSS im HTML Kopfbereich
<style type="text/css">
body{......}
div{.....}
/* Ab hier würde ich gerne durch JS zusätzliche Angaben machen und wieder entfernen */
</style>
Nun erzeuge ich einige zusätzliche Elemente mit Javascript. Aber die benötigen ja auch ein Layout. Gut, ich kann das zwar auch direkt im Stylebreich reinschreiben, aber das macht das JS unflexibel, denn es soll in jeder beliebeigen Datei integriert werden ohne erst CSS Angaben zu machen. Eine Möglichkeit wäre natürlich, und so mache ich das nun auch, beim Erzeugen der Elemente die Style im Tag mitangeben, zb.
var div_1 = '<div style="font-size:25000px;">BIG</div>';
Aber schön finde ich das nicht, zumal es sehr viele Werte sind und vor allem auch die Möglicheit der Selektoren CSS wegfällt.
Da bin ich auf innerHTML gekommen, aber da fällt mir nicht ein wie ich das dann wieder entferne, da ja nicht bei jedem ScriptAufruf die Styleangeben ins Unendliche wachsen sollen.
Mario
Hi,
hat Jemand eine Anregung wie ich zur Laufzeit einer HTML Datei extra CSS unterbringe?
Nachträglich neue Stylesheets anlegen/ergänzen: addStyle()
Bestehende Stylesheets ändern: cssRule()
Gruß, Cybaer
Nachtrag:
Regeln wieder komplett zu entfernen geht übrigens nicht über cssRule() (nur den Inhalt löschen geht).
Das ist zwar eigentlich kein Problem, aber wenn das trotzdem gewünscht wird: mit removeRule(indexNrDerRegel) beim IE, bzw. deleteRule(indexNrDerRegel) bei den anderen Browsern, kann man eine Regel komplett entfernen (Regeln sind in der styleSheets-Collection via rules-Collection (IE) bzw. cssRules-Collection (andere Browser) versammelt - die Indexnr. kann man mit cssRule() herausbekommen, oder man orientiert sich einfach an der ursprünglichen Länge, die, wie bei Collections üblich, in der Eigenschaft length steht).
Gruß, Cybaer
Und noch'n Nachtrag:
Wenn man komplett neue, separate Stylesheets anlegt, kann man sie natürlich auch komplett mittels removeChild() wieder entfernen. ;-)
Gruß, Cybaer
Mahlzeit,
hat Jemand eine Anregung wie ich zur Laufzeit einer HTML Datei extra CSS unterbringe?
Gib deien Elementen Klassen und beeinflusse die per JS. Alternativ kannst du die Elemente auch per ID, Namen oder tagname ansprechen und die CSS-Eigenschaften zuweisen.