在所有页面上包含导航代码(即使有当前导航突出显示!)

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

您已经见过无数次了

<ul>
  <li><a href="#">Home</a></li>
  <li><a href="#">About us</a></li>
  <li><a href="#">Contact us</a></li>
</ul>

经典的菜单 HTML,您可以通过 CSS 将其转换为无数美丽的事物。 您可以通过将其放入自己的 HTML 文件(例如“menu.html”)并在页面上使用类似于此 PHP 代码段的简单包含语句来将其包含在所有页面中

<?php include_once("menu.html"); ?>

现在您需要添加一个类,以便您可以向访问者指示他们在当前导航中的位置

<ul>
  <li><a class="selected" href="#">Home</a></li>
  <li><a href="#">About us</a></li>
  <li><a href="#">Contact us</a></li>
</ul>

选定的类可能会切换背景图片或加粗文本或其他内容以指示当前导航。 这很棒,但现在您已经为特定页面个性化了此代码块。 糟糕! 我们破坏了使用包含语句的全部用处。 以这种方式执行会导致我们必须将此代码放在每个页面上并更改放置选定类的位置。

相反,让我们为每个菜单链接提供它自己的唯一类

<ul>
  <li><a class="home"  href="#">Home</a></li>
  <li><a class="about" href="#">About us</a></li>
  <li><a class="contact" href="#">Contact us</a></li>
</ul>

这仍然没有给我们提供一种方法来单独挑选各个页面上的单个菜单项。 至少不是完全靠它自己……。

技巧来了

为页面上的每个 <body> 标签提供唯一的 ID。 例如 <body id=”home”> 然后您可以创建 CSS,当菜单链接类和 body ID 匹配时,该 CSS 仅会影响菜单项

#home .home, #about .about, #about .about, #contact .contact
{
Your CSS stylings here
}

这是一个很好的例子,说明了 CSS 的美丽和效率。 感谢 Trenton Moss.