突出显示 CSS 菜单栏中当前选定的链接

highlight currently selected link in css menu bar

本文关键字:链接 显示 CSS 菜单栏      更新时间:2023-09-26

我有一个包含此URL的页面:http://localhost:8000/progress/c/?l=1&c=1

而下面的内容作为一个简单的css菜单栏工作。

<div class="menu_div">
    <ul>
        <li><a href="/progress/c/?l=1&c=1"> l1c1 </a></li>
        <li><a href="/progress/c/?l=2&c=1"> l1c1 </a></li>
        <li><a href="/progress/c/?l=3&c=1"> l1c1 </a></li>
        <li><a href="/progress/c/?l=4&c=1"> l1c1 </a></li>
    </ul>
</div>

CSS 样式是

.menu_div ul
{
    padding:6px;
    margin:0px;
    font-size:12px;
    list-style:none;
    text-indent:15px;
}
.menu_div ul li
{
    line-height:28px;
    border-bottom:1px solid #000;
}
.menu_div ul li a
{
    text-decoration:none;
    font-color:#3A332D;
    display:block;
}
.menu_div ul li a:hover
{
    background:blue;
}
.menu_div ul li#active
{
    background:blue;
}

当我将鼠标悬停在链接上时,背景颜色会发生变化,但当前选择的菜单链接不会以蓝色突出显示。

我正在使用 django 框架。

试试这个jQuery代码,它会自动添加类

$(function(){
    var url = window.location.href; 
    $("#menu a").each(function() {
        if(url == (this.href)) { 
            $(this).closest("li").addClass("active");
        }
    });
});

在你的CSS中,你有一个ID为'active'的类,这可能应该是这样的类:

.menu_div ul li.active
{
    background:blue;
}

此外,我不建议尝试使用javascript客户端匹配"活动"或更好表述的"当前"页面。

相反,服务器上的脚本应该识别当前页面并将类添加到相关菜单项,使其如下所示:

<li class="active"><a href="/progress/c/?l=1&c=1"> l1c1 </a></li>

> 将您的 id #active替换为类 .active - 这是更正确的方法:

.menu_div ul li.active
{
    background:blue;
}

并将此类添加到列表中的活动元素中:

<div class="menu_div">
    <ul>
        <li class="active"><a href="/progress/c/?l=1&c=1"> l1c1 </a></li>
        <li><a href="/progress/c/?l=2&c=1"> l1c1 </a></li>
        <li><a href="/progress/c/?l=3&c=1"> l1c1 </a></li>
        <li><a href="/progress/c/?l=4&c=1"> l1c1 </a></li>
    </ul>
</div>
.menu_div ul li#active

它说活动链接需要活动 id 为活动。我没有看到id,因此为什么它不是蓝色的。

如果您希望链接处于活动状态,则必须将项目设置为活动状态,浏览器不会为您执行此操作。

只是

.css

.menu_div ul li.active{background:blue}

.html

<div class="menu_div">
    <ul>
        <li id="page1"><a href="/progress/c/?l=1&c=1"> l1c1 </a></li>
        <li id="page2"><a href="/progress/c/?l=2&c=1"> l1c1 </a></li>
        <li id="page3"><a href="/progress/c/?l=3&c=1"> l1c1 </a></li>
        <li id="page4"><a href="/progress/c/?l=4&c=1"> l1c1 </a></li>
    </ul>
</div>

脚本

#In every page just put this script and change the id
<script>$("#page1").addClass('active');</script>