CSS - 突出显示选定的选项卡

时间:2012-04-23 23:15:47

标签: asp.net css navigation

我的母版页中有以下标签式导航设置。

        <nav class="grid_12">
            <ul>
                <li><a href="#" class="selected">Home</a></li>
                <li><a href="#">Portfolio</a></li>
                <li><a href="#">Blog</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>

例如,当我单击“投资组合”选项卡时,我希望投资组合选项卡在投资组合页面时保持突出显示。 推荐的方法是什么?

我已经检查过其他一些帖子,但the most relevant中的帖子使用示例中的div而不是单独的页面。

1 个答案:

答案 0 :(得分:3)

假设您选择的“已选择”类名称具有您正在谈论的突出显示的样式。用户单击其中一个链接后,使用jquery可以将“selected”类添加到单击的锚标记中。将它放在页面底部,就在关闭正文标记之前或主JavaScript文件中。

<script type="text/javascript">
    $(document).ready(function () {
        $(".grid_12 ul li a").click(function() {
            $(".grid_12 ul li a ").removeClass("selected");
            $(this).addClass("selected")
        })
    })
</script>

上面的代码只有在没有页面刷新和内容刷新的情况下才有效,但是如果您的页面会刷新并转到新页面,我会这样做:

<nav class="grid_12">
    <ul>
        <li><a href="#" class="nav_home">Home</a></li>
        <li><a href="#" class="nav_portfolio">Portfolio</a></li>
        <li><a href="#" class="nav_blog">Blog</a></li>
        <li><a href="#" class="nav_contact">Contact</a></li>
    </ul>
 </nav>

并为特定页面添加样式。例如,当你在www.mySite.com/portfolio上的css for portfolio only时,只需添加:

a.nav_portfolio{
    background-color:orage;
    ...
}

这样你甚至不需要做任何javascript。