Задать вопрос
@ilyahuman

Как создать динамическую смену темы для сайта?

Доброго времени суток, дали довольно сложную для меня задачу - динамическая панель управления на сайте.
1) Через input type="color" выбирается два цвета: основной и второстепенный. Так же есть 4 готовых палитры, с ними вроде проще. Каким образом цепляться за выбранный цвет из палитры есть там только его код, как этим влиять на CSS?
2) Есть выбор кнопок, 2 варианта: с border-radius и без.
Такой задачи еще не было, сложно сообразить как это все сделать. Буду рад любым советам, даже просто абстрактным, наводящим (куда классы присваивать, как менять цвета у кнопок у которых уже есть дефолтные цвета и так далее)
Т.к. задача реально сложная, был бы благодарен за помощь в дальнейшем, вот моя почта: ilyathuzad@gmail.com
Благодарю!
  • Вопрос задан
  • 2479 просмотров
Подписаться 3 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 2
Собственно как организовать это через JS догадаться не сложно.

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

Через БД это сделать тоже не сложно, как заносить название цветовой схемы в базу, думаю, разберетесь. Кстати логичнее это делать на странице настроек пользователя. Далее вы просто проверяете, какой у пользователя выбран цвет сайта, после чего через php прописываете нужные параметры к странице.
Ответ написан
MindMinimal
@MindMinimal
Front-end Developer, веб-разработчик
1. Как вариант переменные (https://www.w3.org/TR/css-variables/) - т.е. в шапке сайта допустим прописать переменные со значениями, в стилях только поставить переменные.
2. Попробовать метод №1 но вместе с LESS например.
3. Вытащить все классы и идентификаторы где должны поменять цвет в шапку сайта (там уже через пхп вставку из темы) а в стилях оставить все остальное. (т.е. выводим только цвета).
4. Касаемо кнопок просто добавлять к ним разные класы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы