我正在建立一个网站。
我已经建立了一个网站。对于每个页面,页眉和页脚都作为 php 包含包含在内。过去,在我决定使用 insert 之前,我会简单地添加class='current'
. 但是,作为一个包含,我不能这样做,因为所有页面都使用相同的代码,例如,如果我将当前课程放在主页链接上,那么即使您在关于我们页面上,主页链接也将具有当前班级。我该如何克服呢?
我正在建立一个网站。
我已经建立了一个网站。对于每个页面,页眉和页脚都作为 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 */
}
很多可能性!