Подсветка ссылки на открытую вкладку категории в css - PullRequest
0 голосов
/ 01 февраля 2012

Я пытаюсь выделить ссылку на открытой вкладке категории, вот что я уже сделал:

globs.py

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

views.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 %} 

base.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;
}

, но так как я не могу использовать теги шаблонов django внутри моего файла .css, это не сработает.

Мои вопросы: 1) Как я могу заставить этот CSS-файл работать на меня.Есть ли шанс сделать шаг за шагом?

2) Если я провалил шаг 1, насколько неуместно было бы стилизовать эти несколько элементов li внутри html-файла?

РЕДАКТИРОВАТЬ: / пробуя другой способ

Я пытался использовать: base.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;}

Когда я сравнил {{запрос.get_full_path}} и /k/-199 па

Ответы [ 2 ]

1 голос
/ 09 мая 2013

Если у вас есть URL:

{% url app:home i.slug as home %}

<li {% ifequal request.get_full_path home %}class="active"{% endifequal %}>
1 голос
/ 01 февраля 2012

Вы можете создать простой класс с именем «active» или что-то в этом духе и добавить его на текущую вкладку. Затем в своем CSS вы применяете активные стили к этому классу. Таким образом, вы просто добавляете активный класс, и он автоматически принимает активный стиль.

...