【问题标题】:How to override flask_admin style for all templates?如何覆盖所有模板的 flask_admin 样式?
【发布时间】:2018-10-16 08:12:49
【问题描述】:

我正在开发简单的 Web 应用程序,至于数据库显示,我使用 Flask_admin 模块。 我想将自定义 CSS 应用于我的所有模板,例如带有蓝色边框的自定义导航。这就是我的 index.html 模板的样子:

{% block head %}
    {{ super() }}
.navbar {
  border-color: #019ced;
  border-width: 1px;
  border-radius: 0;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  border-top: none;
  box-shadow: none;
}
{% endblock %}

它工作正常,但我想将此自定义导航栏样式应用于 所有 模板。

我试图使用 master.html 来做到这一点

{% extends 'admin/base.html' %}
{% block head_css %}
{{ super() }}
.navbar {
  border-color: #019ced;
  border-width: 1px;
  border-radius: 0;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  border-top: none;
  box-shadow: none;
 }
 {% endblock %}

然后在 index.html 中扩展它,但没有任何成功。 我想我可以为从父级继承的每个视图定义自定义模板并覆盖头部分,其中我包含带有自定义导航栏的 CSS 文件,但我正在寻找更简单的方法。

请让我知道定义、创建和继承基本模板的正确方法是什么,我可以在其中定义我的自定义 CSS。提前谢谢你。

【问题讨论】:

    标签: python html css jinja2 flask-admin


    【解决方案1】:

    您的 master.html 文件应如下所示:

    {% extends admin_base_template %}
    {% block head_css %}
        {{ super() }}
        <style>
            .navbar {
                border-color: #019ced;
                border-width: 1px;
                border-radius: 0;
                border-bottom-left-radius: 20px;
                border-bottom-right-radius: 20px;
                border-top: none;
                box-shadow: none;
            }
        </style>
    {% endblock %}
    

    【讨论】:

    • 一个解释会很好:Jinja2 块元素head_css 提供了在HTML 注释的&lt;head&gt; 部分中添加额外条目的可能性。显然,块元素的目的是在此处添加样式表信息。当然这可能发生在缺少&lt;style&gt;...&lt;/style&gt; 的情况下,但您也可以通过&lt;link href="path/to/your/file.css" rel="stylesheet"&gt; 在此处包含一个外部文件,这样更简洁。
    猜你喜欢
    • 1970-01-01
    • 2012-10-06
    • 2021-12-15
    • 2020-06-10
    • 2015-02-25
    • 1970-01-01
    • 2015-06-22
    • 2023-01-26
    • 1970-01-01
    相关资源
    最近更新 更多