我正在尝试突出显示当前打开的类别选项卡的链接,这是我已经完成的:
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/