Maison >interface Web >js tutoriel >Comment échanger dynamiquement des fichiers CSS sans recharger la 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>
<code class="javascript">function enableStylesheet(node) { node.rel = 'stylesheet'; } function disableStylesheet(node) { node.rel = 'alternate stylesheet'; }</code>
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>
<code class="javascript">function enableStylesheet(node) { node.disabled = false; } function disableStylesheet(node) { node.disabled = true; } document .querySelectorAll('link[rel=stylesheet].alternate') .forEach(disableStylesheet);</code>
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>
<code class="javascript">function enableStylesheet(node) { node.media = ''; } function disableStylesheet(node) { node.media = 'none'; }</code>
Remarque :
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!