【问题标题】:Passing variables to CSS file in Django在Django中将变量传递给CSS文件
【发布时间】:2013-08-28 05:22:23
【问题描述】:

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

在views.py中:

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

在 CSS 文件中:

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

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

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

【问题讨论】:

  • 您是否找到上述查询的任何解决方案,因为我也有类似的要求。

标签: css django django-templates


【解决方案1】:

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

【讨论】:

  • 对不起,我很困惑。如何定义我自己的 css 类并使用它?请参阅编辑。
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

    您可以传递 css 样式属性,在您的 html 页面中添加以下行。

     &lt;div class="profile-cover" style="background: url('{{ cover }}')"&gt;

    向 css 类 provile-cover 添加属性 style="background: url('{{ cover }}')"

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

    【讨论】:

    • 这似乎对我不起作用。如果您需要像问题所问的那样从视图中传递background-color : {{bgcolor}}; 之类的颜色怎么办?
    • 这是正确的使用方式 background-color : "{{bgcolor}}"
    【解决方案4】:

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

    另一个选项是看看你是否可以使用mako templating,如果你可以让它与 Django 一起工作。

    但是,除非您有特殊的令人信服的理由需要这样做,否则请定义您自己的 CSS 类。

    【讨论】:

    • 好吧...但我很困惑。如何定义自己的 css 类并使用它?
    • 这是 CSS 的基本组成部分。有关说明,请参阅cssbasics.com/chapter_3_css_class.html
    • 我也要把这个扔给你,因为这是我和其他许多人学习 HTML/CSS 基础的方式w3schools.com
    • 哦!我很抱歉。我在上面进行了编辑。我的意思是,如果用户愿意,我如何让他们自定义他们的页面?我想我可以在不使用外部样式表的情况下做到这一点,但我认为如果 CSS 是静态的并且在 CDN 上并且不使用模板和 CPU 资源进行渲染,则它的服务速度最快。我希望,我说清楚了。如果有办法实现这一点,请指导我。
    • 如果你指的是不同的皮肤,试试这个:github.com/lethain/django-userskins。如果你指的是其他东西,比如所见即所得的编辑器,我不确定,我 90% 是后端开发人员。
    猜你喜欢
    • 2020-10-11
    • 2021-07-03
    • 2019-09-26
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    相关资源
    最近更新 更多