-1

3ページあります。現在のページに基づいて、それを反映するためにアクティブのクラスを変更したいと思います。

インデックス、ブログ、連絡先の 3 ページです。Work にはさまざまなプロジェクト用のさまざまな PHP ファイルがあるように、それぞれにサブページもあります。ブログにはさまざまなブログ記事があります。Contact は単なる PHP コンタクトフォームです。

その人が何をしているのかに基づいて、class="active" を動かしたいと思います。現在、各ページにハードコーディングされています。

私のコードは次のとおりです。

<ul class="list-inline" id="menu">
    <li class="active">
        <a href="index.php">work</a>
    </li><!--
    --><li>
        <a href="blog.php">blog</a>
    </li><!--
    --><li>
        <a href="contact.php">contact</a>
    </li><!--
    --><li>
        <a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a>
        <a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a>
    </li>
</ul>
4

4 に答える 4

0
<ul class="list-inline" id="menu">
<li<?php if ($_SERVER['SCRIPT_FILENAME'] == "index.php") { echo " class=\"active\""; } ?>>
    <a href="index.php">work</a>
</li>
<li<?php if ($_SERVER['SCRIPT_FILENAME'] == "blog.php") { echo " class=\"active\""; } ?>>
    <a href="blog.php">blog</a>
</li>
<li>
    <a href="contact.php">contact</a>
</li>
<li>
    <a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a>
    <a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a>
</li>
</ul>

など

于 2013-10-15T18:42:21.327 に答える
0

多くのアプローチがありますが、そのうちの 1 つが次の方法です。

<?php
$page = ''; // @TODO: assign with the right value
$work_class = $page == 'work' ? 'active' : '';
$blog_class = $page == 'blog' ? 'active' : '';
$contact_class = $page == 'contact' ? 'active' : '';
?>

<ul class="list-inline" id="menu">
    <li class="<?=$work_class?>">
        <a href="index.php">work</a>
    </li><!--
    --><li class="<?=$blog_class?>">
        <a href="blog.php">blog</a>
    </li><!--
    --><li class="<?=$contact_class?>">
        <a href="contact.php">contact</a>
    </li><!--
    --><li>
        <a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a>
        <a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a>
    </li>
</ul>

より正確な答えを得るには、コードの残りの部分がどのように見えるかについてより正確な情報を提供すると役に立ちました。

于 2013-10-15T18:42:47.253 に答える
0

この PHP を追加します。

<?php #add class .active to current page
   $directoryURL = $_SERVER['REQUEST_URI'];
   $path = parse_url($directoryURL, PHP_URL_PATH);
   $components = explode('/', $path);
   $currentPage = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($components));

   if ($currentPage == "") {
       $currentPage = "index";
   }

   function href($url) {
      global $currentPage;
      $path = explode('/', $url);
      $page = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($path));
      echo 'href="' . $url . '"';

      if ($page == $currentPage) {
         echo 'active';
      }
   }
?>

メニューを次のように調整します。

<li><a <?php href('about.php');?>>About</a></li>

*これはうまくいくはずです。幸運を

于 2014-03-06T12:39:50.683 に答える