python - 李一个:nth-child with variable from Django doesn't work as expected

标签 python html css django

我目前正在使用 Django 开发个人博客以提高网络编程水平,但我遇到了一个小问题。我的想法是让网页能够知道哪个菜单元素是事件的,将参数从 views.py 传递到模板。因此,我在这里问为什么会这样。

这是我的模板:

{% block menu %}

        <style> li a:nth-child({{ active }}) { text-decoration: underline; } </style>

    <li><div id="title"><span>{</span> <a href="#">Title</a> <span>}</span></div></li>
    <li><a href="/">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
    <li><a href="#">Work</a></li>

{% endblock menu %}

这是我的 views.py(针对特定页面):

def detail(request, blog_id):
    blog = get_object_or_404(BlogPost, pk=blog_id)
    return render(request, 'blogs/post.html', {'blog': blog, 'active': 1})

我试过以 li 的第 n 个 child 为目标,但这也没有用。我还尝试将固定数字作为第 n 个 child 的参数。唉,无济于事。

谁能帮帮我?有没有更好的方法来做到这一点?

最佳答案

这里有几个问题:nth-child 寻找组中的第 n 个子元素。您当前的代码将设置 li 标记内的第 na 元素的样式 - 但只有一个 a 在每个 li 中。您需要定位 li:

li:nth-child({{ active }}) a { text-decoration: underline; }

您还需要确保 li 元素旁边没有其他任何东西(包括 style 标签),因为这会弄乱计数器。您上面发布的模板代码不完整(我们看不到外部 ul/ol),但如果其中有其他元素,那就是一个问题。

也就是说,我不认为这是最好的方法 - 动态内联样式不是一个健壮的、可维护的解决方案。一种更常见的模式是将 active 类添加到事件列表项,然后在您的核心(静态)CSS 中为此设置样式。参见 this question有关如何实现它的一些想法。

关于python - 李一个:nth-child with variable from Django doesn't work as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087260/

相关文章:

java - GWT i18n 消息属性不显示像 ß 这样的特殊字符

javascript - 如何移动 Bootstrap 列?

javascript - slideDown 立即 li 并向上滑动其他 li 元素

javascript - 使用 javaScript 而非 jquery 的多个切换

python - pandas 中的聚合函数如何工作?

php - 为什么 iframe 不适用于 yahoo.com

python - 如何从 OpenCV 图像而不是 numpy 数组中获取 TIFF 字节流?

javascript - 在JSP、JAVA、WEB.xml中哪里添加x-frame-options :sameorigin ,?

Python 合并列-行中的值(单元格类型为列表)

python - flask-admin:如何在编辑和创建表单时显示有意义的外键信息?