要让暗模式在网页中持久存在,可以通过以下几种方式实现:
@media (prefers-color-scheme: dark) { /* 暗模式下的CSS样式 */ }
@media (prefers-color-scheme: light) { /* 亮模式下的CSS样式 */ }
// 检测是否启用了暗模式 if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { // 将暗模式设置存储在LocalStorage中 localStorage.setItem('darkMode', true); } else { localStorage.setItem('darkMode', false); }
// 在页面加载时应用暗模式的CSS样式 if (localStorage.getItem('darkMode') === 'true') { // 应用暗模式的CSS样式 } else { // 应用亮模式的CSS样式 }
<form id="themeForm"> <label for="darkMode">暗模式</label> <input type="checkbox" id="darkMode" name="darkMode"> </form>
<script> const themeForm = document.getElementById('themeForm'); const darkModeCheckbox = document.getElementById('darkMode');
// 监听偏好设置表单的变化 themeForm.addEventListener('change', () => { // 将暗模式设置存储在LocalStorage中 localStorage.setItem('darkMode', darkModeCheckbox.checked); });
// 在页面加载时根据用户选择应用相应的CSS样式 if (localStorage.getItem('darkMode') === 'true') { // 应用暗模式的CSS样式 darkModeCheckbox.checked = true; } else { // 应用亮模式的CSS样式 darkModeCheckbox.checked = false; } </script>
注意:以上方法仅适用于网页的外观切换,不能直接修改用户操作系统的暗模式设置。同时,对于某些用户来说,暗模式可能不一定适合阅读或使用,因此应该尊重用户的选择,并提供一个方便的方式来切换模式。对于更复杂的应用场景,可以考虑使用前端框架或库来管理暗模式的切换和样式的应用。
领取专属 10元无门槛券
手把手带您无忧上云