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

Comment remplacer le paramètre de schéma de couleurs natif pour une meilleure expérience utilisateur ?

Mary-Kate Olsen
Libérer: 2024-10-26 08:25:02
original
218 Les gens l'ont consulté

How to Override the Native Color-Scheme Setting for a Better User Experience?

Remplacer le paramètre de schéma de couleurs natif

La mise en œuvre des modes sombres est devenue cruciale avec l'adoption généralisée dans divers systèmes d'exploitation. Bien que la prise en charge native des navigateurs existe via la règle multimédia CSS @media (prefers-color-scheme : dark), elle peut ne pas répondre pleinement aux préférences de l'utilisateur ou répondre aux navigateurs non pris en charge comme Microsoft Edge.

Découplage des paramètres système du thème du site Web

Pour fournir un contrôle utilisateur optimal, il est crucial de permettre aux utilisateurs de remplacer le paramètre de jeu de couleurs du système. Cela garantit qu’ils peuvent choisir le thème qu’ils préfèrent pour un site Web spécifique. Pour y parvenir, une combinaison de variables CSS et JavaScript est utilisée.

Configuration CSS

Les variables CSS définissent les paramètres du thème :

<code class="css">:root {
  --font-color: #000;
  --link-color: #1C75B9;
  --link-white-color: #fff;
  --bg-color: rgb(243,243,243);
}

[data-theme="dark"] {
  --font-color: #c1bfbd;
  --link-color: #0a86da;
  --link-white-color: #c1bfbd;
  --bg-color: #333;
}</code>
Copier après la connexion

Des variables sont utilisées dans toute la feuille de style pour garantir la flexibilité :

<code class="css">body {
  color: #000;
  color: var(--font-color);
  background: rgb(243,243,243);
  background: var(--bg-color);
}</code>
Copier après la connexion

Implémentation de JavaScript

JavaScript joue un rôle central dans la détection des préférences de l'utilisateur et le basculement entre les thèmes :

<code class="javascript">function detectColorScheme() {
  let theme = "light";

  if (localStorage.getItem("theme") == "dark") {
    theme = "dark";
  } else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
    theme = "dark";
  }

  if (theme == "dark") {
    document.documentElement.setAttribute("data-theme", "dark");
  }
}

detectColorScheme();</code>
Copier après la connexion

La fonction toggleTheme gère le changement de thème :

<code class="javascript">function switchTheme(e) {
  if (e.target.checked) {
    localStorage.setItem('theme', 'dark');
    document.documentElement.setAttribute('data-theme', 'dark');
  } else {
    localStorage.setItem('theme', 'light');
    document.documentElement.setAttribute('data-theme', 'light');
  }  
}</code>
Copier après la connexion

Ce JavaScript garantit la détection automatique du thème et permet aux utilisateurs de le remplacer par une case à cocher :

<code class="html"><label id="theme-switch" class="theme-switch" for="checkbox_theme">
  <input type="checkbox" id="checkbox_theme">
</label></code>
Copier après la connexion

Conclusion

En combinant des variables CSS et JavaScript, nous donnons aux utilisateurs la possibilité de contrôler la palette de couleurs d'un site Web, quels que soient les paramètres de leur système. Cette approche garantit une expérience utilisateur améliorée, répondant aux préférences individuelles et aux limitations des différents navigateurs.

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!