5

是否可以在 CSS 文件中传递变量,例如在 HTML 文件中。例子:

在views.py中:

def home(request):
    bgcolor = "#999"
    ...
    ...

在 CSS 文件中:

body {
    background-color : {{bgcolor}};
}

如果是,你能指导我如何实现这一目标吗?我真的很感激。谢谢!

编辑:好吧,我的错。我的意思是,如果用户愿意,如何让他们自定义他们的页面?我想我可以在不使用外部样式表的情况下做到这一点,但我认为如果 CSS 是静态的并且在 CDN 上并且不使用模板和 CPU 资源进行渲染,那么它的服务速度最快。如果有办法实现这一点,请指导我。

4

4 回答 4

5

这不是做这种事情的方法。您应该在 CSS 文件中定义不同的类,然后根据那里的变量在模板中使用 then。

于 2013-08-25T18:02:27.690 回答
5

这是一个老问题,但我想我会帮助其他人,因为我也想这样做,我找到了解决方案。

不要使用指定样式表的普通链接标签,而是使用样式标签并内联包含您的 css 文件。

<style>{% include 'my.css' %}</style>

然后您可以将 jinja 代码放入您的 css 文件中,它将呈现变量。如果您想允许用户自定义颜色等,这很有用。

于 2019-05-20T12:43:02.453 回答
2

您可以通过 css 样式属性在您的 html 页面中添加以下行。

 <div class="profile-cover" style="background: url('{{ cover }}')">

将属性添加到 css 类 provil-cover style="background: url('{{ cover }}')"

{{ cover }} 是使用 urls.py 从 views.py 渲染到 HTML 页面的变量

于 2019-03-31T15:42:04.247 回答
1

我同意 Daniel Roseman 的回答,但如果你真的需要这样做,你可以在模板中定义你的 CSS 并使用 python 变量,如图所示。

另一种选择是看看你是否可以使用mako 模板,如果你能让它与 Django 一起工作。

但是,除非你有一些不寻常的令人信服的理由需要这样做,否则请定义你自己的 CSS 类。

于 2013-08-25T18:13:53.430 回答