django模板:扩展模板是否可以在父页面中更改css?

问题描述:

我有两个Django模板页面,其中一个是“base.html”,基本的html标签设置为基本模板。现在我有一个页面“child.html”,它可以扩展它,其中包含{% extends "base.html" %}。现在,我不得不改变<body>背景色为这个特定页面,所以在“child.html”的CSS我写道:django模板:扩展模板是否可以在父页面中更改css?

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

但身体似乎没有任何的变化。我想我一定错过了一些东西。请帮忙,谢谢。

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

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

,我试图改变身体的CSS在template_conf.css,而且也包括template_conf.css没有其他页面。

+0

你是什么意思'在'child.html''的CSS?这个CSS如何被包含在模板中? – 2013-02-08 21:05:04

+0

@DanielRoseman:我更新了这个问题。感谢帮助。 – 2013-02-08 21:15:29

+0

这是''link'标记包含在由父级定义的模板块中,因此它实际上被渲染?它是否出现在呈现的HTML中? – 2013-02-08 21:36:47

在主模板:

<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来定义这个类。

,如果你看到萤火虫或其他浏览器的调试器载入新的CSS, 请尝试:

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

}

为此添加块base.html文件的头部,使你插页那个在base.html文件

<head> 

    .... other head tags .... 

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

这可以让你在另一增加覆盖template_conf.css CSS标签陆续CSS标签在child.html

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

这使您可以覆盖需要改变,同时仍然能够调整所需要的页面在child.html部分base.html文件的partd。

+0

有趣。我想知道哪一个是理想的方法。这一个或@ablm建议的一个。任何想法,任何人? – Anupam 2017-01-31 06:36:03