0

私はウェブサイトを構築しています。

私はウェブサイトを構築しました。各ページには、ヘッダーとフッターが php インクルードとして含まれています。以前は、挿入を使用することを決定する前に、単純に追加してclass='current'いました。ただし、インクルードであるため、同じビットのコードがすべてのページに使用されているため、それを行うことはできません。たとえば、ホームリンクに現在のクラスを配置すると、私たちについてのページにある場合でも、ホームリンクには現在のクラス。どうすればこれを克服できますか?

4

3 に答える 3

0

header.phpファイルに、現在のページがどのページであるかを確認する関数を追加してから、次のような条件になるように更新しますmenu code

<a href='?page=about' <?php if($current_page == 'about') echo "class='current'"; ?>>About</a>
于 2012-08-19T13:37:20.383 に答える
0

これについては、次の1つの方法があります。

各ページ:

$current_page_id = 'about';

include "nav.php";

インクルードファイル:

$nav_items = array(

  'home' => array(

    'href' => "/",

    'label' => "Home Page"

  ),
  // home


  'about' => array(

    'href' => "/about",

    'label' => "About"

  ),
  // about

  ...

);
// $nav_items


?>

<ul>

<?php

foreach ( $nav_items as $nav_id => $nav_item ) {

  $nav_item[ 'class' ] = $nav_id === $current_page_id ? 'active' : '';

  echo <<<DOCHERE

<li>
<a class="{$nav_item[ 'class' ]}" href="{$nav_item[ 'href' ]}">{$nav_item[ 'label' ]}</a>
</li>

DOCHERE;

?>

</ul>
于 2012-08-19T13:39:54.137 に答える
0

別の方法として、ボディに id を付けて、現在のページを示すこともできます。このようなもの:

<body id="home-page">
...
<ul id="nav">
  <li id="home-button">home</li>
  <li id="about-button">about us</li>
  ...
</ul>
...

次に、CSSで次のようなことができます

#nav li {
   /* the default styling */
}
#home-page #home-button, about-page #about-button, ... {
   /* the 'active' styling */
}

たくさんの可能性!

于 2012-08-19T13:54:44.087 に答える