热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

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

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

  横向导航

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

 程序代码---[WWW.AA25.CN]

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



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

 程序代码---[WWW.AA25.CN]
  
    
  • 主页

  •     
  • DIV+CSS教程

  •     
  • 常用代码

  •     
  • 水晶图标

  •     
  • 幻灯图片

  •     
  • 软件下载

  •     
  • CSS2.0实用手册

  •   

      这段代码使用了一个新的元素ul,在导航之前,先简要了解一下ul元素。ul是css而已中使用得很广泛的一种元素主要用来描述列表型内容,每一个
      表示其中的内容为一个列表块,块中的每一条列表数据用
    • 来描述,可以看一下不加任何样式的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 全选 注:引入外部Js需再刷新一下页面才能执行]

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

      [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

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


      推荐阅读
      • 探索Squid反向代理中的远程代码执行漏洞
        本文深入探讨了在网站渗透测试过程中发现的Squid反向代理系统中存在的远程代码执行漏洞,旨在帮助网站管理者和开发者了解此类漏洞的危害及防范措施。 ... [详细]
      • 本章探讨了使用固定数组实现栈和队列的基本方法,以及如何通过这些基本结构来实现更复杂的操作,如获取栈中的最小值。此外,还介绍了如何利用栈来模拟队列的行为,反之亦然。 ... [详细]
      • 探讨了在用户浏览不同页面时,如何无缝循环播放背景音乐的技术方案,包括自动播放和跨页面状态保持。 ... [详细]
      • 本文介绍了一种SQL查询方法,用于将表中的行数据转换为列显示,特别是当需要根据特定条件聚合不同字段的数据时。通过使用子查询和GROUP BY语句,可以有效地实现这一转换。 ... [详细]
      • 本文详细介绍了Linux操作系统中的cp和scp命令,包括它们的基本使用方法、常见选项以及如何通过scp命令安全地在不同主机之间传输文件。 ... [详细]
      • 从零开始学网页设计与Web前端开发——第二课
        2020年10月30日,西京学院3336教室迎来了第十八期研习活动的第二讲,本次课程由计算机科学18级学生梁鸿飞主讲,深入探讨了HTML与CSS的基础知识。 ... [详细]
      • 本文将详细介绍如何在Bootstrap 5中使用五种不同的表单控件样式,包括输入框、选择器和文本区域等元素。 ... [详细]
      • VMware Horizon View 5.0桌面虚拟化部署实践与心得
        在近期的研究中,我花费了大约两天时间成功部署了桌面虚拟化环境,并在此过程中积累了一些宝贵的经验。本文将分享这些经验和部署细节,希望能对同样关注桌面虚拟化的同行有所帮助。 ... [详细]
      • Python编码入门指南
        本文探讨了使用Python进行网络设备连通性测试的简便性,特别是针对IP地址范围为192.168.0.101至192.168.0.200的设备。通过比较Python与Shell、Java等语言,展示了Python在执行此类任务时的优势。 ... [详细]
      • 本文详细介绍了在 Ubuntu 16.04 系统中使用 APT-GET 包管理器安装 MySQL 5.7 数据库的过程,并对安装后的文件和目录结构进行了说明,包括重要的配置文件及其功能。 ... [详细]
      • Node.js 入门指南(一)
        本文介绍了Node.js的安装步骤、如何创建第一个应用程序、NPM的基本使用以及处理回调函数的方法。通过实际操作示例,帮助初学者快速掌握Node.js的基础知识。 ... [详细]
      • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
      • 本文探讨了随着并发需求的增长,MySQL数据库架构如何从简单的单一实例发展到复杂的分布式系统,以及每一步演进背后的原理和技术解决方案。 ... [详细]
      • 了解如何在Java面试中有效地讨论薪资问题,不仅能够帮助求职者更好地表达自己的价值,还能增加成功入职的机会。 ... [详细]
      • Photoshop打造炫酷金色锈迹立体文字
        本文介绍如何使用Photoshop创建具有金属质感和锈迹效果的立体文字。通过叠加多个带有特定图层样式的文字图层,结合火焰背景,营造出独特的视觉冲击力。 ... [详细]
      author-avatar
      季启建_392
      这个家伙很懒,什么也没留下!
      PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
      Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有