Liebe Ida,
ich glaube, ich verstehe nicht so ganz, was Du willst. Aber gut, versuchen will ich es.
Daher: gibt es für mein Vorhaben eine elegantere Methode? Sowas wie
"löse "Ursprungsdatei".css erneut aus
?
Du kannst jederzeit ein link
-Element an das Ende des head
Deines Dokuments setzen, welches ein externes Stylesheet referenziert. Aber das sollte nicht nötig sein, wenn es ein solches link
-Element bereits dort gibt.
(Man könnte da mit AJAX allerhand basteln, nur unter Gesichtspunkten der Performance erscheint es mir dann doch effektiver, den Code in Javascript auszudrücken als extra eine weitere Serveranfrage zu starten... ...?)
Genau das Gegenteil dürfte der Fall sein. Die Anfragen nach zusätzlichen Dateien werden in HTTP2 nach Möglichkeit zusammengefasst, so dass der frühere Overhead mit dem Nachladen von externen Stylesheets nicht mehr vergleichbar ist. Außerdem gibt es ja noch das Caching des Browsers, denn die CSS-Datei wird sich seit dem letzten Laden nicht verändert haben.
Das Manipulieren des DOM ist dagegen von der Performance deutlich teurer. Auf schnellen Maschinen magst Du vielleicht keinen Unterschied fühlen, aber das bedeutet nicht, dass das unbedingt gegen ein Nachladen spricht!
Es sollte Dein Grundsatz sein und bleiben, dass man mit JavaScript das DOM sehr geschickt manipulieren kann, damit gut geschriebener CSS-Code seine Wirkung entfalten kann. Dazu kannst Du class
-Attribute verwenden, die Du mit JavaScript dynamisch setzt (oder entfernst), oder sogar indem Du data-*
-Attribute zu diesem Zweck einsetzt. Mit dem style
-Objekt von HTML-Elementknoten solltest Du wahrhaftig nicht hantieren.
Was Du aber auch tun kannst, ist das Entfernen eines link
-Elements aus dem head
des Dokuments, womit alle seine enthaltenen Layout-Anweisungen ebenso verschwinden und ihre Gültigkeit verlieren.
Liebe Grüße,
Felix Riesterer.