无序列表 - 列表项位置

时间:2016-04-24 17:18:29

标签: php jquery html css

目前我有一个5页的网站,主导航正在使用无序列表显示。我想要实现的目标是"活跃的"要在列表中首先显示的页面。

例如,如果我有这些页面:" Home |关于|联系|博客&#34 ;.当您进入联系页面时,这应移至列表顶部,因此菜单将如下所示:"主页|关于|博客"

导致我出现问题的原因是菜单是通过php包含的,因此所有页面只有一个菜单,通过PHP我已经制作了它以便添加一个" active&#34 ;类到当前页面菜单项。

我不确定什么是最好的解决方案,并且非常感谢任何帮助。

编辑:

这是包含在每个页面中的导航页面:

            <nav class="large-nav">
              <ul>
                <li <?php echo ($activePage == 'ourStory') ? "class='active'" : ""; ?> ><a href="our_story.php" title="">OUR STORY</a></li>
                <li <?php echo ($activePage == 'services') ? "class='active'" : ""; ?> ><a href="services.php" title="">SERVICES</a></li>
                <li <?php echo ($activePage == 'projects') ? "class='active'" : ""; ?> ><a href="projects.php" title="">PROJECTS</a></li>
                <li <?php echo ($activePage == 'contact') ? "class='active'" : ""; ?> ><a href="contact.php" title="">CONTACT</a></li>
                <li <?php echo ($activePage == 'upload') ? "class='active'" : ""; ?> ><a style="margin-right: 0;" href="upload.php#top" title="">UPLOAD</a></li>
              </ul>
            </nav>

3 个答案:

答案 0 :(得分:4)

这是使用Flexbox排序的纯CSS方式。

enter image description here

ul {
  …
  display: flex;
  flex-direction: column;
}

li[class=active] {
  order: -1;
  …
}

演示:http://codepen.io/antibland/pen/ZWjdqL

支持:IE10 +,Firefox,Chrome

答案 1 :(得分:0)

Jsfiddle link

<强> jQuery的:

$(function(){
    $("li").on("click", function(){
        $('ul').prepend($(this))
    }) 
})

<强> HTML

<ul>
    <li>Home</li>
    <li>Contact</li>
    <li>About</li>
    <li>Blog</li>
</ul>

答案 2 :(得分:0)

你可以这样做:

$('.large-nav li').each(function() { 
    if($(this).find('a').attr('href') == location)
    {
        $('.large-nav ul').prepend($(this))
    }
})