Thomek
@Thomek

Как сохранить темную тему при обновлении страницы?

Как сохранить нажатую кнопку тёмной темы при обновлении страницы?

Вот код:

<label><input onchange="changeTheme(this.checked)" type="checkbox" /> Включить темную тему </label> <script>
  function changeTheme(isChecked) {
    if (isChecked) {
      document.body.setAttribute('dark', '');
    } else {
      document.body.removeAttribute('dark');
    }
  }
</script>
<style type="text/css">:root {
  --var-bgcolor: #fff;
  --var-fontcolor: #000;
}

[dark] {
  --var-bgcolor: #333;
  --var-fontcolor: #eee;
}

body {
  background-color: var(--var-bgcolor);
  color: var(--var-fontcolor);
}
</style>
  • Вопрос задан
  • 195 просмотров
Пригласить эксперта
Ответы на вопрос 1
Seasle
@Seasle Куратор тега CSS
1. Добавляйте атрибут на document.documentElement.
2. Добавляйте более осмысленный атрибут, например: data-theme="dark"
3. После добавления атрибута сохраняйте его в localStorage:
localStorage.setItem('theme', isChecked ? 'dark' : 'light');

4. В разделе head добавляйте скрипт, который применит атрибут:
const theme = localStorage.getItem('theme');
if (mode === 'dark') {
  document.documentElement.dataset.theme = 'dark';
}

Ещё можете почитать про prefers-color-scheme.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы