0

ナビゲーションに現在のクラスを追加するために、いくつかの異なる方法を試しました。

これに関する記事を次のサイトで読みました: 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 タグを使用している場合は機能しますが、本当にクラスを使用する場合は、代わりにクラス タグを使用する必要があります。Web ページの head タグまたは css ファイルでクラスを宣言する方法によって異なります。# 記号を使用してクラスを宣言している場合、上記のコードは機能しますが、ベスト プラクティスではありません。代わりにピリオド記号を使用してクラスを宣言し、Web ページでクラス タグを使用することをお勧めします。

于 2013-04-03T04:37:55.130 に答える
0

まず、コードをきれいにするために3 項条件を使用できます。次に、classスタイリングを簡単にするために CSS を使用できます (他のナビゲーション要素を追加すると、複数の条件が可能になります)。

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

常に set を設定するのも面倒なので$thisPage、さらに一歩進んで、現在のリクエスト uri に基づいて PHP に判断させます。

クラスが印刷されるべきときに印刷されないという問題がある場合は、適切に設定されていることを確認するためにvar_dump何かを実行してください。$thisPage

于 2013-04-03T04:13:05.650 に答える