Maison >interface Web >Tutoriel H5 >Comment implémenter le mode sombre avec CSS et HTML5?
Cet article explique comment implémenter le mode sombre dans les sites Web à l'aide de HTML5 et CSS. Il détaille la création de styles de styles clairs et sombres (ou l'utilisation de variables CSS), les basculements entre eux via JavaScript et les propriétés CSS cruciales pour un mode sombre efficace. Accrocheur
La mise en œuvre du mode sombre avec CSS et HTML5 est relativement simple. Le concept de base tourne autour de l'utilisation de CSS pour styliser votre site Web en deux modes distincts: légers et sombres. Ceci est généralement réalisé à l'aide d'une classe CSS ou d'une variable, basculée via JavaScript (ou d'autres scripts côté client).
Tout d'abord, vous devrez créer deux feuilles de style distinctes ou deux ensembles de styles dans une seule feuille de style, un pour votre mode clair et un pour votre mode sombre. Les styles de mode lumineux seront vos styles par défaut. Les styles de mode sombre inverser ou ajusteront les couleurs, les arrière-plans et le contraste potentiellement du texte pour une meilleure lisibilité dans les environnements à faible luminosité. Par exemple:
<code class="css">/* Light Mode Styles */ body { background-color: #ffffff; color: #333333; } /* Dark Mode Styles */ .dark-mode body { background-color: #121212; color: #ffffff; } .dark-mode h1 { color: #f0f0f0; /* Example: adjust heading color in dark mode */ }</code>
Vous ajoutez ensuite une classe nommée "Mode noir" à l'élément à l'aide de JavaScript lorsque l'utilisateur bascule la préférence en mode Dark. Cela appliquera les styles de mode sombre. Vous pouvez également utiliser les variables CSS (propriétés personnalisées) pour un contrôle et une maintenabilité plus sophistiqués. Nous en discuterons plus loin dans les sections suivantes.
Pour activer le mode sombre en fonction de la préférence de l'utilisateur, vous devrez ajouter un bouton à bascule simple et un javascript pour ajouter ou supprimer la classe "mode noir". Cela pourrait être aussi simple que:
<code class="javascript">const toggleSwitch = document.getElementById('darkModeToggle'); const body = document.body; toggleSwitch.addEventListener('change', function() { body.classList.toggle('dark-mode'); });</code>
Cela suppose que vous avez un interrupteur à bascule avec l'ID darkModeToggle
. N'oubliez pas d'inclure ce code JavaScript dans une balise <script></script>
dans votre fichier html.
Plusieurs propriétés CSS sont cruciales pour créer un mode sombre efficace. Ces propriétés vous permettent de contrôler l'apparence visuelle et d'assurer la lisibilité dans des conditions de faible luminosité. Les propriétés clés comprennent:
background-color
: Changer la couleur de fond de la lumière à l'obscurité (par exemple, blanc en noir ou gris foncé) est fondamental.color
: Réglage du texte Couleur en une couleur contrastée (par exemple, noir à blanc ou gris clair) assure la lisibilité.--color-primary
, --color-secondary
, etc. (variables CSS): l'utilisation de variables CSS permet la gestion centralisée des couleurs, ce qui facilite la mise à jour des couleurs tout au long de votre site avec un seul changement. Ceci est fortement recommandé pour la maintenabilité.border-color
: ajustez les couleurs des bordures pour maintenir le contraste et la consistance visuelle.box-shadow
: Envisagez de régler la couleur des ombres de la boîte pour se mélanger avec l'arrière-plan sombre.filter: invert()
: Cela peut être utilisé pour inverser rapidement les couleurs, mais cela est souvent moins précis et peut conduire à des résultats inattendus avec des conceptions complexes. Utiliser avec prudence.text-shadow
: l'ajout d'une ombre de texte subtile peut améliorer la lisibilité sur certains arrière-plans sombres.Le choix de la bonne palette de couleurs est primordial. Visez un contraste suffisant entre le texte et le fond de l'accessibilité (reportez-vous à la section d'accessibilité ci-dessous). Des outils comme le vérificateur de contraste de Webaim peuvent aider à assurer des ratios de contraste adéquats.
La commutation transparente entre les modes clairs et sombres implique une combinaison de CSS et JavaScript, comme indiqué dans la première section. L'utilisation de variables CSS (propriétés personnalisées) améliore considérablement le processus. Au lieu de définir des styles séparés pour le mode clair et sombre, vous pouvez utiliser des variables CSS pour stocker les valeurs de couleur et autres styles. Cela vous permet de modifier les valeurs de ces variables en fonction de la préférence des utilisateurs, à la mise à jour de l'ensemble du thème dynamiquement.
Exemple:
<code class="css">:root { --background-color: #ffffff; --text-color: #333333; } .dark-mode { --background-color: #121212; --text-color: #ffffff; } body { background-color: var(--background-color); color: var(--text-color); }</code>
JavaScript bascule ensuite simplement la classe .dark-mode
sur l'élément , modifiant les valeurs des variables CSS et donc le thème entier. Cette approche facilite le maintien et la mise à jour de vos styles, empêchant les incohérences entre les modes clairs et sombres. Vous pouvez étendre cela pour gérer toutes vos couleurs et styles à l'aide de variables CSS.
Oui, l'accessibilité est cruciale lors de la mise en œuvre du mode sombre. La considération la plus importante est le contraste . Assurez-vous un contraste suffisant entre les couleurs de texte et d'arrière-plan dans les modes clairs et sombres. Un rapport de contraste d'au moins 4,5: 1 est généralement recommandé pour le texte normal, et même plus élevé pour les tailles de texte plus grandes. Utilisez un outil de vérificateur de contraste pour vérifier que vos combinaisons de couleurs REVOTS REVOIR LES LIGNES DIVICULES (WCAG).
Les autres considérations d'accessibilité comprennent:
En considérant soigneusement ces aspects, vous pouvez créer un mode sombre qui est à la fois visuellement attrayant et accessible à tous les utilisateurs.
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!