Maison > interface Web > js tutoriel > le corps du texte

Comment échanger dynamiquement des fichiers CSS sans recharger la page ?

Patricia Arquette
Libérer: 2024-11-02 08:08:02
original
1000 Les gens l'ont consulté

How to Dynamically Swap CSS Files Without Reloading the Page?

Échange de fichiers CSS dynamique pour la modification du style de page

Problème :

Vous avez une page Web avec un fichier CSS statique (light.css) lié dans l'en-tête. Vous avez besoin d'un mécanisme transparent pour basculer le style de la page vers un autre fichier CSS (dark.css), en remplaçant les styles existants.

Solution :

Pour échanger les fichiers CSS de manière dynamique et appliquez le nouveau style sans recharger la page, vous pouvez utiliser l'une des approches suivantes :

1. Activer l'attribut 'rel=alternate' :

<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>
Copier après la connexion
<code class="javascript">function enableStylesheet(node) {
  node.rel = 'stylesheet';
}

function disableStylesheet(node) {
  node.rel = 'alternate stylesheet';
}</code>
Copier après la connexion

2. Définir et activer la propriété « désactivée » :

<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>
Copier après la connexion
<code class="javascript">function enableStylesheet(node) {
  node.disabled = false;
}

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

document
  .querySelectorAll('link[rel=stylesheet].alternate')
  .forEach(disableStylesheet);</code>
Copier après la connexion

3. Activer/désactiver l'attribut 'media=none' :

<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>
Copier après la connexion
<code class="javascript">function enableStylesheet(node) {
  node.media = '';
}

function disableStylesheet(node) {
  node.media = 'none';
}</code>
Copier après la connexion

Remarque :

  • Vous pouvez cibler des fichiers CSS spécifiques à l'aide de getElementById, querySelector , ou d'autres sélecteurs.
  • Évitez l'attribut de lien non standard désactivé. La définition de HTMLLinkElement#disabled est toujours acceptable.
  • Ces méthodes permettent un échange de style fluide sans affecter les éléments de page qui peuvent être stylisés dynamiquement par JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!