Реализация динамической CSS в Django
У меня есть небольшое приложение для блогов, и я хочу иметь возможность изменять стили (не обязательно все) со страницы администратора. Каков был бы "правильный" способ реализовать динамическую загрузку стиля в проекте django? Мои собственные мысли:
Хотя обе реализации имеют серьезные недостатки. Заранее спасибо за ваши решения.
Изменить: я бы предпочел идеи, а не приложения Django:)
1 ответ
"Правильный" способ сделать это - определить отдельный класс в div (или даже теле) верхнего уровня, который определяет основной стиль для этой страницы. Все элементы стиля на этой странице наследуют этот стиль посредством магии каскадирования:
.master-default {
color: black;
}
.master-default .bordered {
border: green;
}
.master-blue {
color: blue;
}
.master-blue .bordered
border: yellow;
}
и так далее. Теперь ваш интерфейс администратора просто позволяет пользователю определить мастер-стиль верхнего уровня, который вы затем используете в своем базовом шаблоне:
<div id="master" class="{{ userprofile.master_style }}">
<div class="bordered">Border colour will vary according to master style</a>
</div>
и т.п.