2013-02-08 62 views
4

我有兩個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

回答

6

在主模板:

<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來定義這個類。

1

,如果你看到螢火蟲或其他瀏覽器的調試器載入新的CSS, 請嘗試:

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

}

7

爲此添加塊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