python - 在 css 中突出显示当前打开的类别选项卡的链接

标签 python css django highlight django-templates

我正在尝试突出显示当前打开的类别选项卡的链接,这是我已经完成的:

globs.py

def globs(request):
    cats = Category.objects.all()
    return {'cats': cats}

View .py

def news_by_category(request, slug):
    c = Category.objects.get(slug=slug)
    news = News.objects.filter(category=c, status='p').order_by('-id')
    #news = c.news_set.all().order_by('-id')
    return object_list(
        request,
        news,
        paginate_by = 5,
        extra_context = {'c':c},
        template_name = 'news_by_category.html')

base.html #bodyclass

<body class="{% block bodyclass %}{% endblock %}">

news_by_category.html

{% block bodyclass %}{{c|cut:" "}}{% endblock %} 

基础.html

<li><h4>Categories:</h4></li>
{% for i in cats %}
<li class="{{i.name|safe|cut:" "}}_li"> 
    <a href="myurl">{{ i.name }}</a>
</li> {% endfor %}

我现在需要做的是为每个类别创建样式,在类别列表中,我可以通过在 html 文件中设置样式轻松地实现这一点,但我不确定这是否合适(会吗?)。我想出了一些 css 样式,

{% for i in cats %}
body.{{ i|safe|cut:" "}} li.{{i|safe|cut:" "}}_li {
    color: red;
}

但是因为我不能在我的 .css 文件中使用 django 模板标签,所以这行不通。

我的问题: 1) 我怎样才能让这个 css 文件为我工作。有机会一步一步来吗?

2) 如果第 1 步失败,那么在 html 文件中设置那几个 li 元素的样式会有多不合适?

编辑:/尝试另一种方式

我尝试使用: 基础.html

{% for i in cats %}
<li class="{% ifequal 'request.get_full_path' '/k/{{ i.slug }}/' %}active{% endifequal %}">                 
<a href="#######">{{ i.name }}</a>
</li> {% endfor %}

.css

.active {{color:red;}

当我比较 {{ request.get_full_path }} 和/k/{{i.slug}}/时都返回相同的东西...但是如果它的内部 ifequal 它似乎不起作用。

最佳答案

您可以创建一个名为“active”或类似名称的简单类,并将其添加到当前选项卡。然后,在您的 CSS 中将事件样式应用于该类。因此,您只需附加事件类,它就会自动采用事件样式。

关于python - 在 css 中突出显示当前打开的类别选项卡的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9099735/

相关文章:

django - 模块未找到错误: No module named 'drf_multiple_model'

python - 了解错误 : 'str' object is not callable

javascript - 通过访问其他域覆盖 iframe/跨域中的 css

python - pysys startProcess 与 numactl

css - Chrome : why does css 3d transform on large elements with transform scale < 0 cause white screen bug?

html - 导航栏渐变色

django - Heroku 上的 postgis Geodjango 出现错误

python - 如何使用 Bootstrap Modal 在 Django 中使用基于类的 View 删除对象?

python - 如何在 Windows 上将 websockify 与 python 一起使用或将 websockify 编译为 Windows 可执行文件(一次用于多个客户端连接)

Python:默认比较