CSS网页布局入门教程9:用CSS设计网站导航——横向导航

网站导航是网站中最重要的元素,是网站提供给用户的最直接最方便的访问网站内容的工具。网站导航从形式上主要由横向导航、纵向导航、下拉及多级菜单导航第三种形式。
  横向导航 作为门户网站的设计而言,主导航一般采用横向导航。由于门户网站下方文字较多,且每个频道均有一同的样式区分,因此在顶部固定一个区域设计统一风格且不占用过多空间的导航是最理想的选择,国内大部分门户均采用这种形式。
  纵向导航 目前在门户网站的设计中已经不再流行,纵向导航更倾向于表达产品分类。
  下拉导航 主要用于功能复杂的网站。在有些网站上也常见的。

  总的来说导航的核心目标是设计一个简便快捷的操作入口,帮助用户快速到达网站中的相应内容,设计上应当根据网站类型及内容的需求设计合理的导航形式。这里我们将使用css对常用的三种导航形式进行设计,看看css是如何实现这些样式的。

  横向导航

  使用css布局的形式制作导航与table布局有很大的区别,网站除了页面布局之外,最重要的就是导航部分,在这一步应该先制作出一个简单明快的导航系统,然后一步一步的完成具有设计效果的最终导航。在这里我们先构想出了顶部的初级设计样式,导航为一种横向导航形式。在开始css的导航制作之前,先让我们回想一下传统的表格式而已的导航制作。如果表格式而已实现如图所示的导航形式,需要设计一个表格table。导航目前共有7个栏目组成,需要设计一个1行7列的表格,并在每一个单元<td></td>标签中插入导航文字,然后 让每个单元格的文本居中,可以看一下实现代码:

程序代码---[WWW.AA25.CN]
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center"><a href="http://:www.aa25.cn/index.asp">主页</a></td>
    <td align="center"><a href="http://:www.aa25.cn/Sort/List_4.html">DIV+CSS教程</a></td>
    <td align="center"><a href="http://:www.aa25.cn/Sort/List_5.html">常用代码</a></td>
    <td align="center"><a href="http://:www.aa25.cn/Sort/List_6.html">水晶图标</a></td>
    <td align="center"><a href="http://:www.aa25.cn/Sort/List_7.html">幻灯图片</a></td>
    <td align="center"><a href="http://:www.aa25.cn/Sort/List_10.html">软件下载</a></td>
    <td align="center"><a href="http://:www.aa25.cn/css2/">CSS2.0实用手册</a></td>
  </tr>
</table>
</body>

  通过代码可以看到,设定了表格的宽高,并把边框边距设为0以便于隐藏表格线,然后让第个单元格的文本对齐方式为居中,就实现了简单导航,这里的要点在于设计了一个与导航形式类似的数据表,将导航交往每一格数据中。再来看一下如何用css来设计同样的导航系统。
  DIV+CSS布局的核心是实现了表现和内容的分离,先来认识一下内容部分的代码编写方式:

程序代码---[WWW.AA25.CN]
  <ul id="nav">
    <li><a href="http://:www.aa25.cn/index.asp">主页</a></li>
    <li><a href="http://:www.aa25.cn/Sort/List_4.html">DIV+CSS教程</a></li>
    <li><a href="http://:www.aa25.cn/Sort/List_5.html">常用代码</a></li>
    <li><a href="http://:www.aa25.cn/Sort/List_6.html">水晶图标</a></li>
    <li><a href="http://:www.aa25.cn/Sort/List_7.html">幻灯图片</a></li>
    <li><a href="http://:www.aa25.cn/Sort/List_10.html">软件下载</a></li>
    <li><a href="http://:www.aa25.cn/css2/">CSS2.0实用手册</a></li>
  </ul>

  这段代码使用了一个新的元素ul,在导航之前,先简要了解一下ul元素。ul是css而已中使用得很广泛的一种元素主要用来描述列表型内容,每一个<ul></ul>表示其中的内容为一个列表块,块中的每一条列表数据用<li></li>来描述,可以看一下不加任何样式的ul的实现显示效果。

  如图所示,作为一种列表型内容,ul默认样式就中上了圆点状序号,而且默认为从上至下排列。为什么我们的导航系统要使用ul元素?实际上导航也是种列表,可以理解为导航列表,每一个列表数据就是导航中的一个导航频道,同样也可以使用二层嵌套的div来实现一个导航的代码结构,但相对于ul列表来说,div显得过于复杂,ul的使用还是应当重点放在块状型区域,而对于简单的只有文字的导航来说,ul就更为轻巧灵活。
  在代码中我们也为ul定义了一个id叫nav,接下来为这个ul及其下面的对象编写代码让它实现需要的导航效果。

  把第一段样式编写给了ul下的li对象,我们希望列表中的每一个一列表项不再遵行其默认的从上至下的排列,因此给#nav li指定了foat:left;的属性,如同div的foat:left;一样,也是通过浮动定位的原理使得自身向左浮动,从而使下一个对象贴紧该对象的右边,最终所有的li都具有了向左浮动的我,从而形式了横向的排列形式。
  导航的关键在于a链接对象的样式控制,在这里使用#nav li a{}给li下的每一个a链接对象编写了样式:
  display:block是这里的重点,它使得a链接对象的显示方式由一段文本改为一个块状对象,和idv的特性相同,div默认状态下是一个块状对象,a链接对象默认状态下是一个普通文本,这样就没有办法使得a链接对象能够像一个方块状按钮一样去动作,使用display:block之后,a链接对象将能够像div和其它元素一样成为一个块状对象(block),就可以使用css外边距、内边距等属性给a链接标签加上一系列的样式了。
  通过display:block的应用,我们让a标签元素有了宽度width:97px,高度height:22px,并在每一个a之间使用margin-left:2px;形式了左侧的外边距为2px。
  display属性是css中对对象显示模式操作的一个属性,主要用一专稿 变对象的显示方式,在css中,所有对象都有自己默认的显示方式,如a与span等对象,它们默认为一种午间内联对象,显示时它们不会影响其它任何对象的显示,如当应用span之后,span之后的内容会自动排在span的右边,像一段文本一样,而div这类对象的默认显示为块状冲锋枪,它们默认状态下便占据了一行的空间,并像一个广场一样显示在页面中,通过display:block,将a也变成了块状对象。此外,display还有众多使用方式将在以后逐步了解到。

#nav li { float:left;}
#nav li a { color:#000000; text-decoration:none; padding-top:4px; display:block; width:120px; height:22px; text-align:center; background-color:#ececec; margin-left:2px;}

  • 主页
  • DIV+CSS教程
  • 常用代码
  • 水晶图标
  • 幻灯图片
  • 软件下载
  • CSS2.0实用手册

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

 预览一下效果,已经像个导航的模样了,不过鼠标移上去没有任何响应,这样对于用户体验来说是非常不友好的,因此需要通过一些带有交互反馈的操作来提示用户对象是可以点击的:
#nav li a:hover { background-color:#bbbbbb; color:#ffffff;}
  这次预览效果,用鼠标移上一个频道,响应出现了,这样我们的导航已经变得友好多了。

#nav li { float:left;}
#nav li a { color:#000000; text-decoration:none; padding-top:4px; display:block; width:120px; height:22px; text-align:center; background-color:#ececec; margin-left:2px;}
#nav li a:hover { background-color:#bbbbbb; color:#ffffff;}

  • 主页
  • DIV+CSS教程
  • 常用代码
  • 水晶图标
  • 幻灯图片
  • 软件下载
  • CSS2.0实用手册

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

初级导航模块完成,不妨对比一下使用表格式布局和css而已在这方面的优劣,你会发现,css的优势是显而易见的。
  注:从本节开始不再写出具体详细的制作步骤,如果你对其中的部分不明白,可以在本节留言;对css掌握不熟练的朋友,建议再温习前几节,平时多用dreamweaver做一些实例,慢慢会逐步掌握的。

(0)

相关推荐

  • CSS网页布局入门教程6:左列固定,右列宽度自适应

    在实际应用中,有时候需要左栏固定宽度,右栏根据浏览器窗口大小自动适应,在CSS中实现这样的布局方式是简单可行的,只需在设置左栏的宽度即可,如上例中左右栏都采用了百分比实现了宽度自适应,而我们只需要将左栏宽度设定为固定值,右栏不设置任何宽度值,并且右栏不浮动,代码如下: 复制代码 代码如下: #left {      background-color: #E8F5FE;      border: 1px solid #A9C9E2;      float: left;      height: 3

  • CSS网页布局入门教程5:二列宽度自适应

    从二列固定宽度入手,开始尝试二列布局的情况下,左右栏宽度能够做到自适应,从一列自适应布局中我们知道,设定自适应主要通过宽度的百分比值设置,因此在二列宽度自适应的布局中也同样是对百分比宽度值的设计,继续上面的CSS代码,我们得新定义二列的宽度值: 复制代码 代码如下: #left {      background-color: #E8F5FE;      border: 1px solid #A9C9E2;      float: left;      height: 300px;      w

  • CSS网页布局入门教程4:二列固定宽度

    有了一列固定宽度作为基础,二列固定宽度就非常简单,我们知道div用于对某一个区域的标识,而二列的布局,自然需要用到两个div,XHTML代码如下: 复制代码 代码如下: <div id="left">左列</div>  <div id="right">右列</div> 新的代码结构中使用了两个id,分别为left和right,表示两个div的名称,我们所需要做的是,首先为它们制定宽度,然后让两个div在水平行中并排显示

  • CSS网页布局入门教程1:一列固定宽度

    本系列教程为入门级教程,适合初学者学习,由最简单的知识一点一点进阶.主要以实例为主,很少部分理论,这样更适应初学者快速掌握.因本人也正在学习,难免有一些错误或疏漏地方,望各位给予指正.本教程参考<CSS网站布局实录>一书,在此向作者表示感谢. 要想学好DIV+CSS,首先要有一定的HTML和CSS知识,如果这些你还不了解,建议你先去补习这一课,再来学习本教程.另外还要抛弃传统表格布局的思维模式,至于为什么,在你学习本教程中慢慢就会体会到.如果这些你都准备好了,那么开始吧! 一列固定宽度 一列固

  • CSS网页布局入门教程13:下拉及多级弹出式菜单

    下拉及弹出式菜单是网站设计中常用导航形式,这种菜单形式能够充分利用页面现在空间隐藏与显示更多内容,并能对内容进行合理的分类显示,是一种非常优秀的导航形式.  早期的下拉或弹出式菜单通过隐藏的layer或div来实现内容的隐藏,通过JavaScript脚本来响应用户的操作,目前也采用JavaScript+div或其它元素的形式来制作此类导航,不同的是整个导航都将使用符合标准的css布局来打造,不再使用表格来制作菜单,下拉式菜单是上面提到的横向导航与纵向导航的结合,而且通过css对于属性的众多支持,

  • CSS网页布局入门教程9:用CSS设计网站导航——横向导航

    网站导航是网站中最重要的元素,是网站提供给用户的最直接最方便的访问网站内容的工具.网站导航从形式上主要由横向导航.纵向导航.下拉及多级菜单导航第三种形式. 横向导航 作为门户网站的设计而言,主导航一般采用横向导航.由于门户网站下方文字较多,且每个频道均有一同的样式区分,因此在顶部固定一个区域设计统一风格且不占用过多空间的导航是最理想的选择,国内大部分门户均采用这种形式. 纵向导航 目前在门户网站的设计中已经不再流行,纵向导航更倾向于表达产品分类. 下拉导航 主要用于功能复杂的网站.在有些网站上也

  • CSS网页布局入门教程11:带当前标识的标签式横向导航图片美化版

    虽然完成了标签式导航,但是广场状的导航似乎并不能够顺应现在的设计潮流,其实导航不仅可以使用css的颜色来定义,同样可以采用精心设计的图片或其它元素来构建导航,在这里我们将开始改善导航的设计,使它成为更加出色的标签效果. 我们将考虑去掉单一的方块状背景元素,使用带色彩的圆角标签来完成我们的设计.不过从这个改进中能够体会到css设计的另一个优势,就是可以不需要修改结构代码,只需要修改样式,便可以完成改进,所以这里可以直接看看css代码的设计: <style> body { background-c

  • CSS网页布局入门教程14:纵向下拉及多级弹出式菜单

    学完了上节教程,我想对于这于这节的学习就容易得多了. 横向菜单是通过div及JavaSprict实现下拉控制,纵向菜单呢?答案是肯定的.我们现在要做的就是一个纵向菜单,css代码: ul { margin:0; padding:0; list-style:none; width:120px; border-bottom:1px solid #ccc; font-size:12px;} ul li { position:relative;} li ul { position:absolute; l

  • CSS网页布局入门教程12:纵向导航菜单

    纵向导航菜单也是网站应用中的一种重要形式,所谓纵向导航菜单是指放置在网页左侧或右侧的从上至下排列的一种导航形式.先看一下效果吧! 如图所示的效果,我们先看一下代码结构: <div id="nav">    <h1>CSS</h1>        <h2><a href="#">css入门</a></h2>        <h2><a href="#&quo

  • CSS网页布局入门教程8:三列浮动中间列宽度自适应

    使用浮动定位方式,从一列到多列的固定宽度及自适应,基本上可以简单完成,包括三列的固定宽度.而在这里给我们提出了一个新的要求,希望有一个三列式布局,基中左栏要求固定宽度,并居左显示,右栏要求固定宽度并居右显示,而中间栏需要在左栏和右栏的中间,根据左右栏的间距变化自动适应.这给布局提出了一个新的要求,而且单纯使用float属性与百分比属性并不能够实现,CSS目前还不支持百分比的计算精确到考虑左栏和右栏的占位,如果对中间栏使用100%宽度的话,它将使用浏览器窗口的宽度,而非左栏与右栏的中间间距,因此我

随机推荐