创建带缩进的导航列表

ZDNet软件频道 时间:2005-01-07 作者:Builder.com |  我要评论()
本文关键词:MichaelMeadhra
很多 Web 站点上都有水平导航栏——这一点也不奇怪,水平导航栏是组织链接的一个很好的方式。最简单的导航栏只由一串普通文本链接组成。
本文译自Builder.com,未经许可请勿转载

很多 Web 站点上都有水平导航栏——这一点也不奇怪,水平导航栏是组织链接的一个很好的方式。最简单的导航栏只由一串普通文本链接组成。然而,越来越多的 Web 开发人员把列表项制作成按钮形状,并结合使用 CSS 滚翻效果使整个按钮表面看起来可点击。

如果导航列表很长的话,那么将一些链接分类通常会很有帮助;导航列表的类别一般由列表项以摘要样式的缩进表示。基本的缩进列表结构可以很简单地用嵌套列表构建,但是还有其它一些窍门来控制那些列表的样式,以获得期望的导航栏滚翻效果。

目标

我们的目标是生成一个导航栏,该导航栏中的链接以摘要样式分层组织,如图A所示。每个顶层列表项是一个完全可点击的按钮,并且具有滚翻效果。在类别项下面缩进的是更多可点击的列表项,这些列表项也具有滚翻效果。在这种情况下,类别项不是链接(它们只是一个个的标签,用于表示缩进的子列表项),但是向这些元素添加链接也非常简单。(注意:在图A中没有任何链接,它们只是用来示范滚翻效果的。)

构建导航栏列表

有几种不同的方法可以用来构建导航栏,但最常用的方法可能是将链接制作为无序列表。毕竟导航栏本质上说是一个链接列表,而且 <ul> 和 <li> 标签就是专为创建这类列表结构而设计的。在需要创建图A所展示的滚翻效果时,将导航栏标记为无序列表尤其有用,因为 XHTML 标准明确地允许在列表中嵌套列表。此外,无序列表标记一般情况下看起来比使用 <div> 或 <p> 标签做出来的东西更加清晰。

下面的代码片断展示了图A中所示的示例页面的 XHTML 代码。(注:这篇文章中的代码已经在 Windows 当前版本的 IE、Firefox、Netscape、Mozilla 和 Opera 中测试通过。底层技术也在 IE/Mac 和 Safari 中测试通过。)

<div id="header">
  <h1>Header</h1>
</div>
<div id="nav">
  <ul>
    <li><a href="#nowhere">List item 1</a></li>
    <li><a href="#nowhere">List item 2</a></li>
    <li><a href="#nowhere">List item 3</a></li>
    <li class="category">List Category 1
      <ul>
        <li><a href="#nowhere">Sub-List 1 item 1</a></li>
        <li><a href="#nowhere">Sub-List 1 item 2</a></li>
      </ul>
    </li>
    <li><a href="#nowhere">List item 4</a></li>
    <li class="category">List Category 2
      <ul>
        <li><a href="#nowhere">Sub-List 2 item 1</a></li>
        <li><a href="#nowhere">Sub-List 2 item 2</a></li>
        <li><a href="#nowhere">Sub-List 2 item 3</a></li>
      </ul>
    </li>
    <li><a href="#nowhere">List item 5</a></li>
  </ul>
</div>
<div id="main">
  <h2>Main Content</h2>
  <p>It is the star...</p>
  <p>...even to the edge of doom.</p>
</div>

导航栏包含在 ID 为 nav的一个 div 中,我们将使用这个 ID 来选择 div 中的列表标签,以求在控制其样式时不影响文档中其它地方的列表。导航栏本身是一个标准无序列表,其子列表嵌套在类别列表项中。

为了符合正确的嵌套规则,嵌套的 <ul> 标签是完全包含在父标签 <li></li> 中的。以前常见的做法是将嵌套的 <ul> 标签放在上一个列表项的 </li> 标签和下一个列表项的 <li> 标签之中,而不是放在父标签的 <li> 中。这种老样式的嵌套方法在目前的一些浏览器中或许可以正确显示,但是这种代码编写方法不符合当前的标准,而且在以后的浏览器版本中可能也无法正常显示。

标记中剩下唯一重要的事情就是应用到类别列表项(它们包含嵌套列表)的类(class)。我们将使用那个类来选择特殊格式的列表项。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134