Django 动态 CSS 实现
我有一个小博客应用,我想在管理页面能更改样式(不一定是所有样式)。在Django项目中,动态加载样式的“正确”方式是什么呢?
我自己的想法是:
- 通过Python文件输入输出编辑CSS文件
- 从数据库构建CSS文件
不过这两种方法都有严重的缺点。谢谢你们提前给出的解决方案。
补充:我更希望得到一些不是Django应用的想法 :)
1 个回答
1
正确的做法是,在最上层的div(或者直接在body标签里)定义一个类,这个类会决定整个页面的主要样式。页面里所有可以设置样式的元素都会通过一种叫做“层叠”的方式,继承这个主要样式:
.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>
等等。