Okay. Es ist ein bisschen CSS dabei?, aber es war viel einfacher als die Antworten, die ich im Internet gefunden habe.
Was ich erreichen möchte?
Ich versuche mit dieser Methode zwei Dinge zu erreichen.
Wir werden also eine Website haben, die das vom Benutzer erwartete Design lädt und es ihm dann ermöglicht, es zu ändern, wenn er möchte.
Schritt 1: Schaltfläche zum Umschalten erstellen
Ich verwende ein Bild als Schaltfläche mit einem SVG-Bild eines Mondes. Sie können eine Schaltfläche oder ein Kontrollkästchen hinzufügen, die für Sie in Ordnung sind, damit Sie zwischen zwei Optionen wechseln können.
Schritt 2: Fügen Sie Ihre Farbdetails als benutzerdefinierte Eigenschaften in CSS ein
:root{ color-scheme: light dark; --light-bg: ghostwhite; --light-color: darkslategray; --light-code: tomato; --dark-bg: darkslategray; --dark-color: ghostwhite; --dark-code: gold; } .light{ color-scheme: light; } .dark{ color-scheme: dark; }
Okay.. Im Stammverzeichnis sehen Sie also eine Eigenschaft namens Farbschema, und das wird unser Game Changer sein.
Wie Sie sehen können, werden die Werte Hell und Dunkel angenommen. Ich habe auch zwei Klassen erstellt, .light und .dark, die den Wert des Farbschemas auf dunkel oder hell setzen.
Schritt 3: Farben zu verschiedenen Teilen Ihres Codes hinzufügen
body{ background-color: light-dark(var(--light-bg), var(--dark-bg)); }
Jetzt können Sie immer dann, wenn eine Eigenschaft nach einer Farbe fragt (wie Hintergrund, Farbeigenschaften), die Funktion „light-dark()“ verwenden.
Diese Funktion nimmt zwei Werte an, der erste wird verwendet, wenn das Farbschema auf hell eingestellt ist, und der zweite wird verwendet, wenn das Farbschema auf dunkel eingestellt ist.
Ja... Dies ist eine Funktion, die im Mai 2024 veröffentlicht wird. Sie ist ziemlich neu, wird aber bald angepasst. Und zum Zeitpunkt des Schreibens dieses Artikels befindet es sich in der Grundunterstützung. Hier sind die Dokumente dazu
Wenn Sie dies verwenden, erkennt das CSS automatisch die Benutzereinstellungen des Betriebssystems und stellt sie auf die gewünschte Farbe ein.
Wir haben unser erstes Ziel erreicht: Die Website wird mit dem Farbmodus geladen, den der Benutzer bereits in seinem Betriebssystem wollte.
Schritt 4: Verwenden Sie Javascript, um zwischen dunklem und hellem Modus umzuschalten
// mode is the toggle button mode.addEventListener("click", ()=>{ // we are getting the color scheme here let theme = document.documentElement.style.colorScheme; /* when a website is first loaded it will have null as its color-scheme value*/ if(theme == null){ // this window.matchMedia() checks if the user prefers the dark theme if(window.matchMedia("(prefers-color-scheme:dark)").matches){ /* if they prefer dark, clicking on our button should turn everything to light, the color-scheme will be given a value as light */ document.documentElement.style.colorScheme = "light"; } // Or else the color-scheme will be set to dark document.documentElement.style.colorScheme = "dark"; } /* Now since our toggle button set the color scheme, we can simply change light to dark and dark to light using below code */ else{ document.documentElement.style.colorScheme = (theme == "light")? "dark": "light"; } });
Hier bezieht sich document.documentElement.style.colorScheme tatsächlich auf das :root-Element aus CSS.
Da es uns bereits im vorherigen Schritt gelungen ist, die Website im vom Benutzer bevorzugten Modus zu öffnen, werden hier beim Klicken auf die Umschalttaste die folgenden Aufgaben ausgeführt.
*PS: * Dies ist mein erster Beitrag und ich bin noch ein Anfänger in der Webentwicklung. Aber als ich nach dieser Methode suchte, habe ich keine entsprechenden Beiträge dazu gesehen. Wenn Sie das bereits wissen, tut es mir leid, dass ich Sie mit Klicks anlocke? Ich dachte, dieser Beitrag wird mir helfen, mich jedes Mal an diesen Prozess zu erinnern, wenn ich an einem neuen Projekt arbeite.
Wenn Sie daran arbeiten, dass Ihre Website in alten Browsern funktioniert, ist diese Methode definitiv nichts für Sie. Sag es mir in den Kommentaren zu diesem Beitrag. Danke fürs Lesen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3