是否可以在CSS文件中传递变量,例如在HTML文件中。例如:
在views.py中:
def home(request):
bgcolor = "#999"
...
...
在CSS文件中:
body {
background-color : {{bgcolor}};
}
如果是,请您指导我如何实现这一目标?我真的很感激。谢谢!
编辑:好的,我的坏。我的意思是,如果用户想要如何让用户自定义他们的页面?我想我可以在不使用外部样式表的情况下完成这项工作,但我认为如果CSS是静态的并且在CDN上并且不使用模板和CPU资源来渲染CSS,那么它的服务速度最快。如果有办法实现这一点,请指导我。
答案 0 :(得分:5)
这不是做这种事情的方法。您应该在CSS文件中定义不同的类,然后在模板中使用then,具体取决于那里的变量。
答案 1 :(得分:2)
这是一个古老的问题,但我认为我会帮助别人,因为我也想这样做,所以我找到了解决方案。
不要使用普通的链接标签来指定样式表,而应使用样式标签并内嵌css文件。
<style>{% include 'my.css' %}</style>
然后,您可以将Jinja代码放入CSS文件中,它将呈现变量。如果要允许用户自定义颜色等,则很有用。
答案 2 :(得分:1)
我同意Daniel Roseman的回答,但如果您真的需要这样做,您可以在模板中定义CSS并使用如此处所示的python变量。
另一个选择是看看你是否可以使用mako templating,如果你可以使用它来使用Django。
但是,除非你有一些不寻常的令人信服的理由,你需要这样做,定义你自己的CSS类。
答案 3 :(得分:0)
您可以传递css样式属性,并在html页面中添加以下行。
<div class="profile-cover" style="background: url('{{ cover }}')">
向CSS类provile-cover添加了属性 style =“ background:url('{{cover}}')”
{{cover}}是使用urls.py从views.py渲染到HTML页面的变量