Heim > Web-Frontend > js-Tutorial > Wie tausche ich CSS-Dateien dynamisch aus, ohne die Seite neu zu laden?

Wie tausche ich CSS-Dateien dynamisch aus, ohne die Seite neu zu laden?

Patricia Arquette
Freigeben: 2024-11-02 08:08:02
Original
1119 Leute haben es durchsucht

How to Dynamically Swap CSS Files Without Reloading the Page?

Dynamischer CSS-Dateiaustausch zur Änderung des Seitenstils

Problem:

Sie haben eine Webseite mit einer statischen CSS-Datei (light.css) im Header verlinkt. Sie benötigen einen nahtlosen Mechanismus, um den Stil der Seite auf eine andere CSS-Datei (dark.css) umzustellen und vorhandene Stile zu ersetzen.

Lösung:

Um CSS-Dateien dynamisch und auszutauschen Um den neuen Stil anzuwenden, ohne die Seite neu zu laden, können Sie einen der folgenden Ansätze verwenden:

1. Attribut „rel=alternate“ umschalten:

<code class="html"><link rel="stylesheet" href="main.css">
<link rel="stylesheet alternate" href="light.css" id="light" title="Light">
<link rel="stylesheet alternate" href="dark.css" id="dark" title="Dark"></code>
Nach dem Login kopieren
<code class="javascript">function enableStylesheet(node) {
  node.rel = 'stylesheet';
}

function disableStylesheet(node) {
  node.rel = 'alternate stylesheet';
}</code>
Nach dem Login kopieren

2. Eigenschaft „deaktiviert“ festlegen und umschalten:

<code class="html"><link rel="stylesheet" href="main.css">
<link rel="stylesheet" href="light.css" id="light" class="alternate">
<link rel="stylesheet" href="dark.css" id="dark" class="alternate"></code>
Nach dem Login kopieren
<code class="javascript">function enableStylesheet(node) {
  node.disabled = false;
}

function disableStylesheet(node) {
  node.disabled = true;
}

document
  .querySelectorAll('link[rel=stylesheet].alternate')
  .forEach(disableStylesheet);</code>
Nach dem Login kopieren

3. Attribut „media=none“ umschalten:

<code class="html"><link rel="stylesheet" href="main.css">
<link rel="stylesheet" href="light.css" media="none" id="light">
<link rel="stylesheet" href="dark.css" media="none" id="dark"></code>
Nach dem Login kopieren
<code class="javascript">function enableStylesheet(node) {
  node.media = '';
}

function disableStylesheet(node) {
  node.media = 'none';
}</code>
Nach dem Login kopieren

Hinweis:

  • Mit getElementById, querySelector können Sie auf bestimmte CSS-Dateien abzielen , oder andere Selektoren.
  • Vermeiden Sie das nicht standardmäßige Attribut „Link deaktiviert“. Das Setzen von HTMLLinkElement#disabled ist weiterhin akzeptabel.
  • Diese Methoden ermöglichen einen reibungslosen Stilwechsel, ohne dass Seitenelemente beeinträchtigt werden, die möglicherweise von JavaScript dynamisch gestaltet werden.

Das obige ist der detaillierte Inhalt vonWie tausche ich CSS-Dateien dynamisch aus, ohne die Seite neu zu laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage