当标题是 php 插入时,如何在导航菜单上使用当前标记



我正在建立一个网站。

我建立了一个网站。对于每个页面,页眉和页脚都包含在 php 包含中。过去,在我决定使用 insert 之前,我只会添加 class='current' .但是,由于它是一个包含,我不能这样做,因为所有页面都使用相同的代码,例如,如果我将当前类放在主页链接上,那么即使您在"关于我们"页面上,主页链接也将具有当前类。我该如何克服这个问题?

在您的

header.php文件中添加一个函数来检查哪个页面是当前页面,并且然后,更新您的menu code,使其具有如下条件:

<a href='?page=about' <?php if($current_page == 'about') echo "class='current'"; ?>>About</a>

这里有一种方法可以做到这一点:

每页:

$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>

作为替代方案,您也可以为您的身体提供一个 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 */
}

很多可能性!

相关内容

  • 没有找到相关文章

最新更新