Одно возможное решение на примере: скажем, у вас есть элемент div
, который вы хотите по-разному окрашивать в каждой теме.Загрузите оба файла .less
и отредактируйте их следующим образом (добавьте класс темы к элементу body
, охватывающему весь документ):
theme-1.less
body.theme-1 {
div.address {
background-color: yellow;
}
}
theme-2.less
body.theme-2 {
div.address {
background-color: fuchsia;
}
}
Затем предоставьте пользователю механизм изменения темы (например, раскрывающееся меню).Когда пользователь выбирает из меню - скажем, например, изменяя с theme-1
на theme-2
- введите этот JS:
document.getElementsByTagName("body")[0].classList.replace("theme-1", "theme-2");
Как правило, вы можете сделать это несколькими способами:
document.getElementsByTagName("body")[0].classList.replace(<currently-selected-theme>, <newly-selected-theme);
или
document.getElementsByTagName("body")[0].classList.remove(<currently-selected-theme>).add(<newly-selected-theme>);