如何在导航列表项和链接中添加一类当前?

时间:2013-04-03 04:08:55

标签: php navigation

我尝试了几种不同的方法在我的导航中添加一类电流。

我在http://alistapart.com/article/keepingcurrent

上阅读了一篇关于这样做的文章

到目前为止,我没有运气将任何方式纳入我的网站。

我觉得我错过了什么。

我使用名为nav.php的包含文件将导航导入网站:

    <div id="nav">
    <div id="nav-container">
        <ul id="nav-content" class="top menu">
            <li<?php if ($thisPage=="home") 
            echo " id=\"currentpage\""; ?>>
            <a href="/index2013.php">Home</a></li>

            <li<?php if ($thisPage=="portfolio") 
            echo " id=\"currentpage\""; ?>>
            <a href="/design/designsystems/unitedway/unitedway.php">Portfolio</a></li>

            <li<?php if ($thisPage=="services") 
            echo " id=\"currentpage\""; ?>>
            <a href="/services/services.php">Services</a></li>

            <li<?php if ($thisPage=="resources") 
            echo " id=\"currentpage\""; ?>>
            <a href="/resources/resources.php">Resources</a></li>

            <li<?php if ($thisPage=="blog") 
            echo " id=\"currentpage\""; ?>>
            <a href="http://kristinemorical.com/wordpress/kristine-blog/">Blog</a></li>

            <li<?php if ($thisPage=="contact") 
            echo " id=\"currentpage\""; ?>>
            <a href="/contactinfo/contact.php">Contact</a></li>
        </ul>
    </div>
    </div>

这就是我在索引页面中的内容:

<?php $thisPage="home"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Kristine Morical : Home</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="Kristine Morical" />
<?php include('http://www.kristinemorical.com/includes/head.php'); ?>
</head>

    <body id="body">

        <?php include('http://www.kristinemorical.com/includes/header.php'); ?>

        <?php include('http://www.kristinemorical.com/includes/nav.php'); ?>

        <div id="outer" class="clearfix">

        <div id="sidebar-wrapper">
        <?php //include('http://www.kristinemorical.com/includes/sidebar.php'); ?>
        </div>

        <div id="content" role="main">      

        </div> <!-- end #main -->

        </div> <!-- end #outer -->

        <?php include('http://www.kristinemorical.com/includes/footer.php'); ?>

    </body>

</html>

我不确定我做错了什么。

2 个答案:

答案 0 :(得分:0)

首先,您可以使用ternary条件来获得更干净的代码,其次,使用css class来更轻松地设置样式(如果添加其他导航元素,则允许使用多个):

<li<?= ($thisPage=="services" ? ' class="currentPage"' : '') ?>>
    <a href="/services/services.php">Services</a>
</li>

总是设置$thisPage也会变得乏味,所以你可以更进一步让PHP尝试根据当前的请求uri找出它。

如果您遇到问题,那么班级永远不会打印,那么请var_dump$thisPage上的某个内容确保其设置正确。

答案 1 :(得分:0)

试试这个:

<div id="nav">
    <div id="nav-container">
        <ul id="nav-content" class="top menu">
            <?php if ($thisPage=="home")  echo "<li id=\"currentpage\">"; else echo "<li>";?>
            <a href="/index2013.php">Home</a></li>

            <?php if ($thisPage=="portfolio")  echo "<li id=\"currentpage\">"; else echo "<li>";?>
            <a href="/design/designsystems/unitedway/unitedway.php">Portfolio</a></li>

            <?php if ($thisPage=="services")  echo "<li id=\"currentpage\">"; else echo "<li>";?>
           <a href="/services/services.php">Services</a></li>

            <?php if ($thisPage=="resources")  echo "<li id=\"currentpage\">"; else echo "<li>";?>
            <a href="/resources/resources.php">Resources</a></li>

            <?php if ($thisPage=="blog")  echo "<li id=\"currentpage\">"; else echo "<li>";?>
            <a href="http://kristinemorical.com/wordpress/kristine-blog/">Blog</a></li>

            <?php if ($thisPage=="contact")  echo "<li id=\"currentpage\">"; else echo "<li>";?>
           <a href="/contactinfo/contact.php">Contact</a></li>
        </ul>
    </div>
</div>

如果你使用的是ID标签,但是如果你真的想使用一个类,那么你应该使用类标签。这取决于您在网页的头标记或css文件中声明类的方式。如果您使用#符号声明该类,则上述代码将起作用,但这不是最佳实践。您可能希望使用句点符号声明该类,然后在您的网页中使用类标记。