حسنًا.. هناك القليل من CSS المعنية؟، ولكن الأمر كان أسهل بكثير من الإجابات التي وجدتها على الإنترنت.
ما الذي أحاول تحقيقه؟
أحاول تحقيق شيئين بهذه الطريقة.
لذلك سيكون لدينا موقع ويب سيتم تحميله في المظهر المتوقع للمستخدم ثم السماح له بتغييره عندما يريد ذلك.
الخطوة 1: إنشاء زر للتبديل
أنا أستخدم صورة كزر يحتوي على صورة svg للقمر. يمكنك إضافة الزر أو مربع الاختيار الذي يناسبك للتبديل بين خيارين.
الخطوة 2: ضع تفاصيل الألوان في CSS كخصائص مخصصة
: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; }
حسنًا.. إذن، في الجذر، ترى خاصية تسمى نظام الألوان وهذا سيغير قواعد اللعبة لدينا.
كما ترون، يأخذ القيم الضوء أو الظلام لذلك. لقد قمت أيضًا بإنشاء فئتين .light و .dark التي تحدد قيمة نظام الألوان إلى داكن أو فاتح.
الخطوة 3: إضافة الألوان إلى أجزاء مختلفة من التعليمات البرمجية الخاصة بك
body{ background-color: light-dark(var(--light-bg), var(--dark-bg)); }
الآن عندما تطلب خاصية ما لونًا (مثل الخلفية، وخصائص اللون)، يمكنك استخدام الوظيفة المسماة light-dark().
تأخذ هذه الوظيفة قيمتين، يتم استخدام الأولى عندما يتم ضبط نظام الألوان على الضوء ويتم استخدام الثانية عندما يتم ضبط نظام الألوان على الظلام.
نعم... تم إصدار هذه الوظيفة في مايو 2024. إنها جديدة إلى حد ما، ولكن سيتم تعديلها قريبًا. وهو في دعم خط الأساس حتى كتابة هذا المقال. إليك المستندات الخاصة بذلك
إذا كنت تستخدم هذا، فسيقوم CSS تلقائيًا باكتشاف تفضيلات المستخدم من نظام التشغيل وتعيينه على اللون الذي يريده.
لقد حققنا هدفنا الأول، حيث سيتم تحميل الموقع الإلكتروني بوضع الألوان الذي يريده المستخدم بالفعل في نظام التشغيل الخاص به.
الخطوة 4: استخدم Javascript للتبديل بين الوضع الداكن والفاتح
// 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"; } });
هنا، document.documentElement.style.colorScheme يشير فعليًا إلى عنصر :root من CSS.
نظرًا لأننا نجحنا بالفعل في فتح موقع الويب في الوضع المفضل للمستخدم في الخطوة السابقة، فعند النقر على زر التبديل، يتم تنفيذ المهام التالية.
*ملاحظة: * هذه أول مشاركة لي وما زلت مبتدئًا في تطوير الويب. ولكن عندما بحثت عن هذه الطريقة، لم أر أي منشورات ذات صلة بها. إذا كنت تعرف هذا بالفعل، فأنا آسف للنقر فوق اصطيادك؟. اعتقدت أن هذا المنشور سيساعدني على تذكر هذه العملية في كل مرة أعمل فيها على مشروع جديد.
إذا كنت تعمل على أن يعمل موقع الويب الخاص بك على المتصفحات القديمة، فهذه الطريقة ليست مناسبة لك بالتأكيد. أخبرني في التعليقات حول هذا المنشور. شكرا على القراءة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3