Togol Mod Gelap Automatik dan Manual
Bina togol tema yang menghormati pilihan sistem secara lalai dan membolehkan pengguna mengatasinya secara manual.
Togol Mod Gelap Automatik dan Manual ialah pelajaran CSS Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran CSS Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus CSS Academy merangkumi sejumlah 4 pelajaran.
Matlamat
Pelaksanaan mod dark yang ideal mengesan pilihan OS secara automatik secara lalai dan menyediakan butang toggle yang membolehkan pengguna menggantikannya secara berasingan, dengan pilihan itu disimpan merentas pemuatan halaman.
Gambaran Keseluruhan Seni Bina
Tiga states yang perlu dikendalikan:
- Pilihan system: gunakan
prefers-color-schemedengan pemboleh ubah CSS - Penggantian pengguna: dark: tetapkan class atau atribut data pada
<html> - Penggantian pengguna: terang: tetapkan class yang berbeza untuk menghalang mod dark automatik
Persediaan Token CSS
Tentukan pemboleh ubah CSS yang berfungsi dengan betul secara berlatarkan untuk semua states:
<div class="demo" data-theme="dark">Dark token demo</div>
<div class="demo" data-theme="light">Light token demo</div>
Logik toggle JavaScript
Baca pilihan yang disimpan, gunakannya dan kemas kini apabila toggle digunakan:
<div class="demo" id="theme-demo">Toggle my theme</div>
<div class="demo" data-theme="dark">Dark override example</div>
<button id="toggle-btn">Toggle Theme</button>
<script>
function toggleTheme() {
const current = document.getElementById('theme-demo').dataset.theme;
const system = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
if (!current) {
const next = system === 'dark' ? 'light' : 'dark';
document.getElementById('theme-demo').dataset.theme = next;
} else {
delete document.getElementById('theme-demo').dataset.theme;
}
}
document.getElementById('toggle-btn').addEventListener('click', toggleTheme);
</script>
Toggle Tiga states
Toggle tiga states yang lebih terperinci: Terang | system | dark:
<div class="demo" id="theme-demo">Cycles: light → system → dark</div>
<div class="demo" data-theme="dark">Dark state example</div>
<p id="state-label">system</p>
<button id="cycle-btn">Cycle Theme</button>
<script>
const states = ['light', 'system', 'dark'];
let current = 'system';
const demo = document.getElementById('theme-demo');
const label = document.getElementById('state-label');
document.getElementById('cycle-btn').addEventListener('click', () => {
current = states[(states.indexOf(current) + 1) % states.length];
label.textContent = current;
if (current === 'system') { delete demo.dataset.theme; } else { demo.dataset.theme = current; }
});
</script>
Menghalang Kelipan Tema yang Salah
Gunakan tema yang disimpan secara segerak sebelum halaman dipaparkan:
<pre class="code-sample"><!-- In <head>, before any styles -->
<script>
const t = localStorage.getItem("theme");
if (t) document.documentElement.dataset.theme = t;
</script></pre>
Kebolehcapaian Butang Toggle
Butang toggle hendaklah menyampaikan keadaan semasa kepada pembaca skrin. Kemas kini label kebolehcapaian apabila toggle digunakan:
<button id="theme-toggle" aria-label="Switch to dark mode">🌙</button>
Peralihan Tema Beranimasi
Peralihan warna yang lancar apabila tema berubah:
<div class="demo" id="at-demo">Smooth theme transition</div>
<button onclick="document.documentElement.classList.add('theme-transitioning'); const d=document.getElementById('at-demo'); const dark = d.style.background==='rgb(17, 17, 17)'; d.style.background = dark ? '#fff' : '#111'; d.style.color = dark ? '#111' : '#fff'; setTimeout(()=>document.documentElement.classList.remove('theme-transitioning'),250);">Toggle</button>
Mengesan Perubahan system
Tindak balas juga diperlukan jika pengguna mengubah pilihan OS mereka semasa halaman dibuka:
<p id="status">Listening for system theme changes…</p>
<script>
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
document.getElementById('status').textContent = 'System changed to ' + (e.matches ? 'dark' : 'light');
});
</script>
Ikon Mod dark
Tukar ikon bagi setiap mod. Gunakan elemen picture untuk imej yang peka terhadap tema, atau CSS untuk memaparkan atau menyembunyikan ikon yang berbeza:
<div>Light: <span class="icon-sun">☀️</span><span class="icon-moon">🌙</span></div>
<div data-theme="dark">Dark: <span class="icon-sun">☀️</span><span class="icon-moon">🌙</span></div>
Ringkasan: Senarai Semak Pelaksanaan
Senarai semak mod dark:
- Pemboleh ubah CSS untuk semua token warna
- Kueri media pilihan skema warna untuk pengesanan automatik
- Atribut tema-data untuk penggantian manual
- localStorage untuk penyimpanan
- Skrip sebaris dalam pengepala untuk mengelakkan kelipan
- Butang toggle yang boleh diakses dengan label aria dinamik
Semakan Pantas
Apakah teknik yang menghalang "kelipan tema yang salah" apabila halaman dimuatkan?
Ulang Kaji
Toggle mod dark yang lengkap menggunakan pemboleh ubah CSS untuk token tema, kueri prefers-color-scheme untuk pengesanan automatik, atribut data-theme untuk penggantian manual, localStorage untuk penyimpanan dan skrip segerak dalam pengepala untuk mengelakkan kelipan. Sediakan toggle tiga states yang boleh diakses, iaitu terang/system/dark, untuk pengalaman pengguna yang terbaik.
Pelajari CSS dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 40
- Pelajaran
- 159
Soalan Lazim
Adakah pelajaran “Togol Mod Gelap Automatik dan Manual” percuma?
Ya — teks penuh “Togol Mod Gelap Automatik dan Manual” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus CSS Academy, tingkat taraf kepada CoddyKit PRO. Kursus CSS Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Togol Mod Gelap Automatik dan Manual”?
Bina togol tema yang menghormati pilihan sistem secara lalai dan membolehkan pengguna mengatasinya secara manual. Anda berlatih CSS Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan CSS Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran CSS Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Togol Mod Gelap Automatik dan Manual” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran CSS Academy ini?
Ya. Setiap pelajaran CSS Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pertanyaan Media prefers-color-scheme
- Pemboleh Ubah CSS untuk Pemetaan Tema
- Sifat color-scheme
- Togol Mod Gelap Automatik dan Manual