python - 使用 python/flask 中的 twitter bootstrap css 更改链接的事件类

标签 python class twitter-bootstrap flask jinja2

我从我的页面 template.html 中获得了以下 html 片段。

<ul class='nav'>
    <li class="active"><a href='/'>Home</a></li>
    <li><a href='/lorem'>Lorem</a></li>

    {% if session['logged_in'] %}
        <li><a href="/account">Account</a></li>
        <li><a href="/projects">Projects</a>
        <li><a href="/logout">Logout</a></li>
    {% endif %}

    {% if not session['logged_in'] %}
        <li><a href="/login">Login</a></li>
        <li><a href="/register">Register</a></li>
    {% endif %}
</ul>

正如您在第 2 行看到的那样,该类处于事件状态。这会突出显示带有 twitter Bootstrap css 文件的事件选项卡。现在,如果我访问 www.page.com/ 而不是当我访问 www.page.com/login 时,这将正常工作。它仍会将主页链接突出显示为事件选项卡。

当然,我可以使用 Javascript/jQuery 轻松做到这一点,但我不想在这种情况下使用它。

已经有一个 working solution for ruby on rails但我不知道如何将其转换为 python/jinja(我对 jinja/flask 很陌生,根本没有使用过 ruby​​)

最佳答案

你看过这个吗? https://jinja.palletsprojects.com/en/3.0.x/tricks/#highlighting-active-menu-items

突出显示事件菜单项

您通常希望有一个带有事件导航项的导航栏。这真的很容易实现。因为子模板中 block 外的赋值是全局的,并且在布局模板被评估之前执行,所以可以在子模板中定义事件菜单项:

{% extends "layout.html" %}
{% set active_page = "index" %}

然后布局模板可以访问active_page。此外,为该变量定义默认值是有意义的:

{% set navigation_bar = [
    ('/', 'index', 'Index'),
    ('/downloads/', 'downloads', 'Downloads'),
    ('/about/', 'about', 'About')
] -%}

{% set active_page = active_page|default('index') -%}
...
<ul id="navigation">
    {% for href, id, caption in navigation_bar %}
    <li{% if id == active_page %} class="active"{% endif
    %}><a href="{{ href|e }}">{{ caption|e }}</a>
    </li>
{% endfor %}
</ul>

关于python - 使用 python/flask 中的 twitter bootstrap css 更改链接的事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18600031/

相关文章:

python - 使用 Matplotlib 和 Numpy,有没有办法找到线性方程的所有直线交点?

python - 如何在逻辑回归中使用权重

c++ - 将 C++ 代码从结构迁移到类

我不明白的 C++ 错误 : syntax missing ';' before identifier

html - 将嵌入的页面内容调整到视口(viewport)

python - 如何一次向 Tornado 套接字客户端广播消息?

python - 循环而不在 tensorflow 中展开

java - 从另一个类调用 string[] 显示为 null

html - Bootstrap 并排放置输入框

javascript - 我需要过滤 bootstrap jQuery 数据表