你有两个选择,你可以使用 PHP 和 CSS,这更好,因为这是客户端独立的。第二种选择是使用 Javascript 和 CSS
PHP & CSS
我更喜欢这种方式!如果当前页面等于每个菜单链接,您需要检查每个站点。这是我的解决方案的一些片段。它适用于我的网站。我不知道它是否适合您的链接方式:index.php/home
. 认为你必须适应它。因为我使用的是 home.php 和 blog.php 之类的真实文件
这是 menu.php,我将它包含在每个站点中:
<div id="menu">
<div class="innertube">
<ul>
<?
markIfCurrent("Willkommen", "willkommen");
markIfCurrent("Salzgrotte", "salzgrotte-am-fehn");
markIfCurrent("Heilwirkung", "heilwirkung-des-salzes");
markIfCurrent("Farbtherapie", "farblichttherapie");
markIfCurrent("Salzshop", "salzshop");
markIfCurrent("Erfahrungs-<br/>berichte", "erfahrungsberichte");
markIfCurrent("Fragen und Antworten", "fragen-und-antworten");
markIfCurrent("Preise", "preise");
markIfCurrent("Galerie", "galerie");
markIfCurrent("Presse", "presse");
markIfCurrent("Praxis", "praxis");
markIfCurrent("Anfahrt", "anfahrt");
?>
</ul>
</div>
</div>
现在php函数:
/* filter selected menu items */
function markIfCurrent ($name, $link) {
$should_mark = isCurrent($link);
if ($should_mark) {
$first = strtoupper(substr($name, 0, 1));
$rest = substr($name, 1);
echo "<li><span class='current'>".$name."</span></li>\n";
} else {
echo "<li><a class='lower' href='".$link."'>".$name."</a></li>\n";
}
}
/* check if $pageis current page */
function isCurrent ($page) {
/* reverse mapping */
if ($page == "willkommen") {
$page = "index";
}
$isCurrent = $page.".php" == getCurrentPage();
return $isCurrent;
}
function getCurrentPage() {
$path = $_SERVER['PHP_SELF'];
$a = explode("/", $path);
$site_name = $a[sizeof($a)-1];
return $site_name;
}
至少CSS:
li span.current a {
background-color: black; /* or #000000 */
}
li span a {
background-color: gray; /* or #cccccc*/
}
JavaScript & CSS
这是更多的伪代码,但它与 PHP 版本的逻辑相同
在这种情况下,您还需要检查当前 url 并window.location.pathname
获取 url / 路径名。在斜杠上拆分并提取文件。然后您可以使用 jQuery 遍历导航的元素,$("#navigation").find("a")
然后您可以为 a 元素设置 css 样式a.css("background-color", "black")