当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS网页布局入门教程9:用CSS设计网站导航:横向导航

CSS样式表
css 块状元素和内联元素
CSS 盒模型、块状元素与内联元素、CSS选择器
css 浮动 理解Float的含义
CSS 清除浮动Clear
CSS 制作网页导航条(上)
CSS 制作网页导航条(下)
css 浮动(float)页面布局
css 浮动(float)页面布局(下)
css position 定位
css 定位应用实例
CSS Hack 有关浏览器兼容方面
css 单图片按钮实例(css 图片变换)
使用X-UA-Compatible来设置IE浏览器兼容模式
div overflow 超出隐藏属性使用说明
CSS 使用规则总结
div+CSS 兼容小摘
CSS的inherit与auto使用分析
如何组织和注释CSS文件
CSS样式按整洁易懂的结构组织
CSS Prism 查看和编辑CSS中用到的颜色

CSS样式表 中的 CSS网页布局入门教程9:用CSS设计网站导航:横向导航


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 155 ::
收藏到网摘: n/a

网站导航是网站中最重要的元素,是网站提供给用户的最直接最方便的访问网站内容的工具。网站导航从形式上主要由横向导航、纵向导航、下拉及多级菜单导航第三种形式。
  横向导航 作为门户网站的设计而言,主导航一般采用横向导航。由于门户网站下方文字较多,且每个频道均有一同的样式区分,因此在顶部固定一个区域设计统一风格且不占用过多空间的导航是最理想的选择,国内大部分门户均采用这种形式。
  纵向导航 目前在门户网站的设计中已经不再流行,纵向导航更倾向于表达产品分类。
  下拉导航 主要用于功能复杂的网站。在有些网站上也常见的。
  总的来说导航的核心目标是设计一个简便快捷的操作入口,帮助用户快速到达网站中的相应内容,设计上应当根据网站类型及内容的需求设计合理的导航形式。这里我们将使用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还有众多使用方式将在以后逐步了解到。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

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

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