Rumah hujung hadapan web tutorial css Panduan Langkah demi Langkah untuk Mod Terang/Gelap di Blog Beruang

Panduan Langkah demi Langkah untuk Mod Terang/Gelap di Blog Beruang

Oct 28, 2024 pm 10:29 PM

Step-by-Step Guide to Light/Dark Mode on Bear Blog

Baru-baru ini saya telah melaksanakan suis mod terang/gelap pada blog Bear saya menggunakan ciri media skema warna pilihan yang digabungkan dengan fungsi warna terang-gelap().

Begini cara saya melakukannya.

Langkah 1: Menyediakan CSS

CSS telah memperoleh beberapa ciri baharu yang hebat sejak beberapa tahun lalu, termasuk fungsi warna terang-gelap(). Fungsi ini membolehkan anda menentukan dua warna untuk mana-mana elemen—satu untuk mod terang dan satu untuk mod gelap.

Sebagai contoh, jika anda mahu latar belakang anda berwarna putih dalam mod terang dan hitam dalam mod gelap, berikut ialah cara anda menyediakannya:

body {
  background-color: light-dark(#fff, #000);
}
Salin selepas log masuk

Saya menggunakan pendekatan ini pada semua elemen dengan keperluan warna yang berbeza dalam mod terang dan gelap.

Langkah 2: Menambah HTML

Untuk togol tema, saya menggunakan ikon tunggal dan bukannya suis, butang radio atau menu lungsur. Halaman dimuatkan dengan hanya ikon untuk bertukar kepada mod bertentangan yang boleh dilihat—memandangkan tema lalai saya gelap, ikon mod gelap pada mulanya disembunyikan dan ikon untuk bertukar kepada mod cahaya kelihatan.

Acara onclick memanggil fungsi switchMode(), yang mengendalikan togol antara tema terang dan gelap (lebih lanjut mengenainya kemudian). Berikut ialah persediaan HTML:

<a id="preferdark" onclick="switchMode('dark')" style="display: none;">
  <!-- Icon for switching to dark mode. -->
</a>
<a id="preferlight" onclick="switchMode('light')">
  <!-- Icon for switching to light mode. -->
</a>
Salin selepas log masuk

Langkah 3: Mencipta JavaScript

JavaScript mengendalikan dua tugas utama:

  1. Bertukar antara mod terang dan gelap apabila pengguna mengklik ikon.
  2. Menyimpan pilihan tema pengguna dalam localStorage untuk memuatkannya secara automatik pada lawatan akan datang.

JavaScript dibahagikan kepada dua bahagian: kod dalam <kepala> untuk menyediakan tema pada pemuatan halaman dan kod dalam <footer> untuk mengemas kini elemen selepas halaman dimuatkan sepenuhnya.

Untuk menambah kod pada <kepala> dan <footer> pada Bear, pergi ke Tetapan > Arahan pengepala dan pengaki.

<kepala> Kod JavaScript

Kod ini mendapatkan semula tema yang disimpan sebelum ini daripada storan setempat, jika tersedia. Jika tidak, ia menyemak sama ada penyemak imbas atau OS pengguna lebih suka tema terang atau gelap. Jika maklumat itu tidak tersedia, ia lalai kepada mod gelap. Kemudian, ia menggunakan mod itu pada elemen :root (iaitu elemen asas):

const storedScheme = localStorage.getItem("color-scheme");
const preferredScheme = storedScheme 
  ? storedScheme 
  : window &amp;&amp; 
    window.matchMedia &amp;&amp; 
    window.matchMedia('(prefers-color-scheme: light)').matches ? "light" : "dark";

document.querySelector(':root').style.setProperty("color-scheme", preferredScheme);
Salin selepas log masuk

<footer> Kod JavaScript

Kod ini menunjukkan ikon yang betul berdasarkan pembolehubah Skim pilihan yang telah ditetapkan sebelum ini dalam <kepala>. Fungsi switchMode() mengemas kini paparan ikon, menukar skema warna :root dan menyimpan pilihan baharu dalam storan setempat:

document.querySelector("#preferlight").style.display = preferredScheme === "light" 
  ? "none" 
  : "";
document.querySelector("#preferdark").style.display = preferredScheme === "light" 
  ? "" 
  : "none";

function switchMode(mode) {
  document.getElementById("preferlight").style.display = mode === "light" 
  ? "none" 
  : "";
  document.getElementById("preferdark").style.display = mode === "light" 
  ? "" 
  : "none";
  document.querySelector(':root').style.setProperty("color-scheme", mode);
  localStorage.setItem("color-scheme", mode);
}
Salin selepas log masuk

Dan itu sahaja—suis mod terang/gelap untuk blog Bear anda!

Atas ialah kandungan terperinci Panduan Langkah demi Langkah untuk Mod Terang/Gelap di Blog Beruang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menambah bayang -bayang kotak ke blok dan elemen WordPress Menambah bayang -bayang kotak ke blok dan elemen WordPress Mar 09, 2025 pm 12:53 PM

Menambah bayang -bayang kotak ke blok dan elemen WordPress

Buat borang hubungan JavaScript dengan rangka kerja pintar Buat borang hubungan JavaScript dengan rangka kerja pintar Mar 07, 2025 am 11:33 AM

Buat borang hubungan JavaScript dengan rangka kerja pintar

Buat editor teks sebaris dengan atribut yang boleh dipertikaikan Buat editor teks sebaris dengan atribut yang boleh dipertikaikan Mar 02, 2025 am 09:03 AM

Buat editor teks sebaris dengan atribut yang boleh dipertikaikan

Menjadikan Peralihan Svelte Khas pertama anda Menjadikan Peralihan Svelte Khas pertama anda Mar 15, 2025 am 11:08 AM

Menjadikan Peralihan Svelte Khas pertama anda

Membandingkan 5 Pembina Borang PHP Terbaik (dan 3 skrip percuma) Membandingkan 5 Pembina Borang PHP Terbaik (dan 3 skrip percuma) Mar 04, 2025 am 10:22 AM

Membandingkan 5 Pembina Borang PHP Terbaik (dan 3 skrip percuma)

Muat naik fail dengan multer di node.js dan ekspres Muat naik fail dengan multer di node.js dan ekspres Mar 02, 2025 am 09:15 AM

Muat naik fail dengan multer di node.js dan ekspres

Tunjukkan, jangan beritahu Tunjukkan, jangan beritahu Mar 16, 2025 am 11:49 AM

Tunjukkan, jangan beritahu

Bekerja dengan Caching Graphql Bekerja dengan Caching Graphql Mar 19, 2025 am 09:36 AM

Bekerja dengan Caching Graphql

See all articles