html 正确使用CSS

ikfrs5lh  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(171)

我有一个Django模板(主页),其中包括另一个模板(导航栏)。
我有一个CSS文件为我的主页,一个为我的导航栏。
我的问题是:如何正确地将导航栏的CSS包含在主页面中?
我试了一下(1):
main_page.html

{% block css %}
    <link rel="stylesheet" type="text/css" href="style.css">
{% endblock %}

字符串
navbar.html

{% block css %}
    <link rel="stylesheet" type="text/css" href="navbar.css">
{% endblock %}


或者只是(2)
main_page.html

<link rel="stylesheet" type="text/css" href="style.css">


navbar.html

<link rel="stylesheet" type="text/css" href="navbar.css">


然后在main_page. html中

{% include "base/navbar.html" %}


在每种情况下,两个CSS都被加载(main_page + navbar),但我不认为像这样包含CSS是好的。
在Django的include HTML页面中包含CSS的正确方法是什么?
在情况(1)中,即使我使用{% block %},main_page的CSS仍然保留,而不是替换为我在navbar.html中指定的CSS。这是正常的行为吗(因为使用了include而不是extends?)?
先谢谢你了,弗洛

3okqufwl

3okqufwl1#

为了扩展模板块,你需要包含{{ block.super }},这将包含你在父模板中声明的内容:

{% block css %}
    {{ block.super }}
    <link rel="stylesheet" type="text/css" href="navbar.css">
{% endblock %}

字符串
但更好的解决方案是使用sekizai,这是一个允许您轻松包含资产的库:http://django-sekizai.readthedocs.org/en/latest/
还有更复杂的解决方案,允许您压缩和分组资产:http://django-pipeline.readthedocs.org/

webghufk

webghufk2#

在Django temple中包含css(或js)的方法有很多。我将发布我在项目中使用的方法。
1.在任何专门使用css/js的模板中,将它们放在模板中
就像,
在“main_page.html”中
第一个月
inside“navbar.html”
<link rel="stylesheet" type="text/css" href="navbar.css">

相关问题