0

我已经尝试了几种不同的方法来在我的导航中添加一个 current 类。

我在以下网址阅读了一篇关于这样做的文章: 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>

我不确定我做错了什么。

4

2 回答 2

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 标签,这将起作用,但如果您真的想使用一个类,那么您应该使用类标签。这取决于您如何在网页的 head 标记或 css 文件中声明该类。如果您使用# 符号声明类,那么上面的代码将起作用,但这不是最佳实践。您可能希望使用句号声明类,然后在您的网页中使用类标签。

于 2013-04-03T04:37:55.130 回答
0

首先,您可以使用三元条件来获得更简洁的代码,其次,使用 cssclass来简化样式(如果添加其他导航元素,这将允许多个):

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

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

如果您遇到问题,该类从不应该打印,然后做一个var_dump或某事$thisPage以确保它被正确设置。

于 2013-04-03T04:13:05.650 回答