6

我有两个 django 模板页面,其中之一是“base.html”,基本的 html 标签设置为基本模板。现在我有一个扩展它的页面“child.html”,里面有类似{% extends "base.html" %}的东西。现在我必须更改<body>这个特定页面的背景颜色,所以在“child.html”的 css 中我写道:

body {
    background-color: #000000;
    /* some other css here */
}

但身体似乎对任何变化都没有反应。我想我一定错过了什么。请帮忙,谢谢。

编辑: 在“child.html”中,我只是有

<link rel="stylesheet" type="text/css" href="/site-media/css/template_conf.css"/>

我尝试在 中更改 body css template_conf.css,并且没有其他页面包含template_conf.css.

4

3 回答 3

11

在主模板中:

<body class="{% block body_class %}{% endblock %}">
...
</body>

然后在子模板中,只定义块:

{% block body_class %} my_new_body_css_class {% endblock %}

这将呈现一个<body class="my_new_body_css_class">...</body>并且您必须在链接的 CSS 中定义此类。

于 2013-02-08T21:14:55.427 回答
10

为此,在头部的 base.html 中添加一个块,允许您在 base.html 中的那个之后插入另一个 css

<head>

    .... other head tags ....

    <link rel="stylesheet" type="text/css" href="/site-media/css/template_conf.css"/>
    {% block extra_css %}{% endblock %}
</head>

这允许您通过在 child.html中template_conf.css添加另一个标签来覆盖 css 标签<link>

{% block extra_css %}
<link rel="stylesheet" type="text/css" href="/site-media/css/child_template.css"/>
{% endblock %}

这允许您覆盖 base.html 中需要更改的部分,同时仍然能够调整 child.html 中所需的页面部分。

于 2013-02-09T11:14:14.647 回答
1

如果您在 firebug 或其他浏览器调试器中看到新的 css 加载,请尝试:

body {
background-color: #000000 !important;
/* some other css here */

}

于 2013-02-08T21:17:04.420 回答