Navigation menu that highlights the current page using PHP and CSS
Example
PHP Code
<?php
$currentPage = $_SERVER["REQUEST_URI"];
$pages = array(
array("href" => "/home/", "title" => "Home"),
array("href" => "/blog/", "title" => "Blog"),
array("href" => "/portfolio/", "title" => "Portfolio"),
array("href" => "/about/", "title" => "About Me"),
array("href" => "/contact/", "title" => "Contact Me")
);
$menu = "<ul>";
$class = "";
foreach ($pages as $page) {
$class = ($page["href"] == $currentPage) ? ' class="current"' : '';
$menu .= <<<HTML
<li{$class}><a href="{$page["href"]}">{$page["title"]}</a></li>
HTML;
}
$menu .= "</ul>";
echo $menu;
?>
Generated HTML
<ul class="nav">
<li><a href="/home/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
<li class="current"><a href="/portfolio/">Portfolio</a></li>
<li><a href="/about/">About Me</a></li>
<li><a href="/contact/">Contact Me</a></li>
</ul>
CSS
li a {
color: blue;
text-decoration: none;
}
li.current a {
color: black;
cursor: default;
text-decoration: underline;
font-weight: bold;
}