#javascript #jquery #html #css #themes
#javascript #jquery #HTML #css #темы
Вопрос:
Я перепроектирую нашу корпоративную интрасеть. Я использую простую тему, основанную на 5 связанных цветах, для создания единого стиля на всех страницах. Одна вещь, которую я хотел бы сделать, это разрешить каждому пользователю выбирать свою собственную «тему». Достаточно просто создать несколько цветовых палитр, которые будут работать с моим дизайном. То, с чем я играю, — лучший способ реализовать это.
У меня было две мысли, но я открыт для всех предложений. Первым было бы создать базовую таблицу стилей, независимую от темы, и единообразно применять ее. Затем создайте отдельные таблицы стилей тем. Затем применяя это либо с помощью сценариев на стороне сервера, либо JavaScript / jQuery. Моя другая мысль — использовать одну таблицу стилей, а затем использовать jQuery для применения их к каждому элементу. Так, например:
<div class="theme_color_1"></div>
<script type="text/javascript">
function colorize(theme){
if(theme === 0){
$('.theme_color_1').addClass('blue_theme_1');
}
else if(theme === 1){
$('.theme_color_1').addClass('red_theme_1');
}
else{
$('.theme_color_1').addClass('default_theme_1');
}
}
</script>
И так по одному для каждого элемента темы. Мне просто интересно, есть ли у кого-нибудь опыт реализации такого типа функций и какой, по вашему мнению, «лучший» метод. Наш сайт довольно «легкий», поэтому я не очень обеспокоен обработкой / скоростью, когда дело доходит до манипулирования DOM или загрузки страницы.
Спасибо!
** Я только что использовал очень простой пример кода, так как я еще не начал его реализовывать. Если мой код недостаточно понятен, пожалуйста, дайте мне знать, и я предоставлю дополнительную информацию.
** Также обратите внимание, что я использую классический ASP (это то, с чем я застрял на данный момент), MS SQL, HTML 5, CSS 3 (используя PIE для обеспечения поддержки функций), JavaScript, jQuery и jQuery UI.
Комментарии:
1. Добавьте класс в тело, стиль, основанный на этом классе. Сохраните настройку в базе данных, добавьте ее в тег body при отображении страницы. ТАДА, все готово.
2. Интересно, не уверен, почему я об этом не подумал. Это, безусловно, было бы меньше накладных расходов, и я мог бы использовать единую таблицу стилей и единую функцию jQuery / JavaScript. Я все еще на стадии планирования, но как только я дойду до этого момента, я попробую и обновлю этот вопрос. Спасибо!
Ответ №1:
Вы можете сохранить тему, выбранную пользователем, в базе данных и, в зависимости от пользователя, вошедшего в систему, применить таблицу стилей.
например
<% if rs("style") = 1 then %>
<link href="theme1.css" rel="stylesheet" type="text/css" />
<% elseif rs("style") = 2 then %>
<link href="theme2.css" rel="stylesheet" type="text/css" />
...etc.
Наличие базовой темы — абсолютно хорошая идея.
Комментарии:
1. Спасибо, это одно из возможных решений, которое я собираюсь использовать. Я еще не дошел до стадии разработки, где я могу применить это. Прямо сейчас я просто разрабатываю базовый css, чтобы у меня могли быть темы. Как только я получу достаточно далеко вниз, я попробую несколько предложений здесь.