Стилизация с помощью CSS

Далее мы определим стили как для темного, так и для светлого режимов. Мы будем использовать переменные CSS, чтобы упростить переключение тем.

/* styles.css */:root {    --bg-color: #ffffff;    --text-color: #000000;    --button-bg-color: #000000;    --button-text-color: #ffffff;}body {    background-color: var(--bg-color);    color: var(--text-color);    font-family: Arial, sans-serif;    transition: background-color 0.3s ease, color 0.3s ease;}.container {    text-align: center;    margin-top: 50px;}button {    background-color: var(--button-bg-color);    color: var(--button-text-color);    border: none;    padding: 10px 20px;    cursor: pointer;    transition: background-color 0.3s ease, color 0.3s ease;}button:hover {    opacity: 0.8;}body.dark-mode {    --bg-color: #333333;    --text-color: #ffffff;    --button-bg-color: #ffffff;    --button-text-color: #000000;}

Добавление функциональности JavaScript

Теперь мы добавим JavaScript для обработки переключения темы. Мы также сохраним предпочтения пользователя в localStorage, чтобы их выбор сохранялся между сеансами.

// script.jsdocument.addEventListener(\\'DOMContentLoaded\\', () => {    const switcher = document.getElementById(\\'modeSwitcher\\');    const currentMode = localStorage.getItem(\\'theme\\') || \\'light\\';    if (currentMode === \\'dark\\') {        document.body.classList.add(\\'dark-mode\\');        switcher.textContent = \\'Switch to Light Mode\\';    }    switcher.addEventListener(\\'click\\', () => {        document.body.classList.toggle(\\'dark-mode\\');        const mode = document.body.classList.contains(\\'dark-mode\\') ? \\'dark\\' : \\'light\\';        switcher.textContent = mode === \\'dark\\' ? \\'Switch to Light Mode\\' : \\'Switch to Dark Mode\\';        localStorage.setItem(\\'theme\\', mode);    });});

Объяснение

1. Переменные CSS: Мы используем переменные CSS для определения цветов для обоих режимов, что позволяет легко переключаться между ними.

2. JavaScript: Мы добавляем прослушиватель событий к кнопке для переключения класса темного режима в элементе body. Мы также обновляем текст кнопки в зависимости от текущего режима и сохраняем режим в localStorage.

3. Постоянная тема: Когда страница загружается, мы проверяем localStorage на предмет предпочтений пользователя и применяем соответствующую тему.

Заключение

Реализация переключателя темного/светлого режима повышает удобство работы пользователя, предоставляя визуальные параметры, соответствующие различным предпочтениям и условиям. С помощью всего лишь нескольких строк HTML, CSS и JavaScript вы можете добавить эту ценную функцию в свои веб-проекты.

Не стесняйтесь экспериментировать с более продвинутыми функциями, такими как плавные переходы или дополнительные темы. Возможности безграничны, и ваши пользователи оценят дополнительную гибкость.

Удачного программирования!

","image":"http://www.luping.net/uploads/20240730/172233036366a8acfbc7557.jpg","datePublished":"2024-07-30T17:06:02+08:00","dateModified":"2024-07-30T17:06:02+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Создание переключателя темного/светлого режима CSS

Создание переключателя темного/светлого режима CSS

Опубликовано 30 июля 2024 г.
Просматривать:791

Creating a CSS Dark/Light Mode Switcher

Переключатели темного и светлого режимов становятся все более популярными, предлагая пользователям возможность выбирать предпочтительный визуальный опыт. Будь то снижение нагрузки на глаза, экономия заряда батареи или просто следование личным предпочтениям, внедрение переключателя темного/светлого режима может значительно улучшить взаимодействие с пользователем. В этой статье мы покажем вам, как создать простой, но эффективный переключатель темного/светлого режима с использованием HTML, CSS и JavaScript.

Зачем реализовывать темный/светлый режим?

1. Предпочтения пользователя: Некоторые пользователи предпочитают темный режим для эстетики или снижения нагрузки на глаза, особенно в условиях низкой освещенности.

2. Доступность: Улучшение доступности за счет предложения темы, которая может помочь пользователям с нарушениями зрения.

3. Экономия заряда батареи: На OLED-экранах темный режим может сэкономить заряд батареи.

Настройка структуры HTML

Начните с создания простой структуры HTML. Нам понадобится кнопка для переключения между темным и светлым режимами.



    
    
    Dark/Light Mode Switcher
    


    

Dark/Light Mode Switcher

Toggle the button to switch between dark and light modes.

Стилизация с помощью CSS

Далее мы определим стили как для темного, так и для светлого режимов. Мы будем использовать переменные CSS, чтобы упростить переключение тем.

/* styles.css */
:root {
    --bg-color: #ffffff;
    --text-color: #000000;
    --button-bg-color: #000000;
    --button-text-color: #ffffff;
}

body {
    background-color: var(--bg-color);
    color: var(--text-color);
    font-family: Arial, sans-serif;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.container {
    text-align: center;
    margin-top: 50px;
}

button {
    background-color: var(--button-bg-color);
    color: var(--button-text-color);
    border: none;
    padding: 10px 20px;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}

button:hover {
    opacity: 0.8;
}

body.dark-mode {
    --bg-color: #333333;
    --text-color: #ffffff;
    --button-bg-color: #ffffff;
    --button-text-color: #000000;
}

Добавление функциональности JavaScript

Теперь мы добавим JavaScript для обработки переключения темы. Мы также сохраним предпочтения пользователя в localStorage, чтобы их выбор сохранялся между сеансами.

// script.js
document.addEventListener('DOMContentLoaded', () => {
    const switcher = document.getElementById('modeSwitcher');
    const currentMode = localStorage.getItem('theme') || 'light';

    if (currentMode === 'dark') {
        document.body.classList.add('dark-mode');
        switcher.textContent = 'Switch to Light Mode';
    }

    switcher.addEventListener('click', () => {
        document.body.classList.toggle('dark-mode');
        const mode = document.body.classList.contains('dark-mode') ? 'dark' : 'light';
        switcher.textContent = mode === 'dark' ? 'Switch to Light Mode' : 'Switch to Dark Mode';
        localStorage.setItem('theme', mode);
    });
});

Объяснение

1. Переменные CSS: Мы используем переменные CSS для определения цветов для обоих режимов, что позволяет легко переключаться между ними.

2. JavaScript: Мы добавляем прослушиватель событий к кнопке для переключения класса темного режима в элементе body. Мы также обновляем текст кнопки в зависимости от текущего режима и сохраняем режим в localStorage.

3. Постоянная тема: Когда страница загружается, мы проверяем localStorage на предмет предпочтений пользователя и применяем соответствующую тему.

Заключение

Реализация переключателя темного/светлого режима повышает удобство работы пользователя, предоставляя визуальные параметры, соответствующие различным предпочтениям и условиям. С помощью всего лишь нескольких строк HTML, CSS и JavaScript вы можете добавить эту ценную функцию в свои веб-проекты.

Не стесняйтесь экспериментировать с более продвинутыми функциями, такими как плавные переходы или дополнительные темы. Возможности безграничны, и ваши пользователи оценят дополнительную гибкость.

Удачного программирования!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mdhassanpatwary/creating-a-css-darklight-mode-switcher-26cd?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3