标题 | 网页下拉菜单的实现方法与比较分析 |
范文 | 黄卫+杨文远 摘要:该文阐述了使用CSS、javascript等技术将HTML无序列表生成动态的下拉菜单,以及利用存储于站点地图中的数据“轻松”实现类似效果,各有其特点,广泛应用在网页制作中。 关键词:CSS;javascript;Menu;下拉菜单 中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2017)35-0238-01 1 概述 很多网站制作都会将导航(菜单)应用进来,以提升网站交互体验。下拉菜单是最常见的效果之一,用鼠标移过去时,就会出现下一级子菜单,网站的结构(页面节点分布)展现的一目了然。制作下拉菜单可以是客户端运行的CSS、JavaScript等技术,也可以使用服务端运行的Menu控件等。本文讨论3种快速制作三级下拉菜单的方法,并阐述其特点,以供比较分析。 2 下拉菜单静态部分 設计一个实现三级导航的下拉菜单,采用HTML文档的无序列表,通过和标记来制作出菜单分级效果,如图1所示。 HTML代码如下: 3 动态效果的实现 将鼠标放在一级菜单上,弹出下拉菜单,移入位置加入不同颜色以示区别,鼠标移走则菜单消失,本文介绍以下几种方法。 3.1 纯CSS方法实现 CSS提供了一个hover伪类,通过设置其display属性的none、block值来控制下拉菜单的出现和隐藏。鼠标移动某级菜单时,所显示的子菜单位置和父级菜单不一样,使用position定位来控制下拉菜单的位置。设置float:left实现一级菜单为水平排列,而其他各级菜单则要求竖向排列,用::after伪元素选择器来清除浮动。CSS代码如下:
#nav {margin:100px auto; text-align:center;} #nav ul {border-radius:10px;background:#CCFFFF;padding:020px;position:relative;list-style :none;} #nav ul li {float:left; } #nav ul::after {content:"";display:block;clear:both;} #nav ul li a {display:block;padding:25px40px;color:#000;text-decoration:none;font-family:Arial;} #nav ul li:hover > ul {display:block;} #nav ul li:hover{background:(#5F6975);} #nav ul li, nav ul ul li:hover a {color:#FFF;} #nav ulul {display:none;background:#99CCCC;border-radius:0;position:absolute;top:100%;padding:0; } #nav ul ul li {float:none;border-top:1px solid;border-bottom:1px solid;} 3.2 javascript方法实现 该方法通过参数li,在父级菜单鼠标放入时添加showsub(li)方法,以及鼠标离开时添加hidesub(li)方法实现子菜单的显示与消失。制作中仍然引入CSS文件,美化导航菜单。
3.3 菜单Menu控件方法实现[1] Menu控件运行于服务器端,摆脱了客户端不确定因素,它与SiteMapDateSource控件搭配使用,设置Web.SiteMap站点地图作为引用数据源。Web.SiteMap直观体现了整个网站的结构和页面间层级关系。如有更新,仅需对 4 三种方法的对比分析 通过以上介绍,第一种应用纯CSS的方法实现起来快速简单,不引用CSS3特效时,低版本浏览器运行无兼容性问题,布局与表现相分离使维护更加容易[2]。但对于 4级或以上菜单要按层级修改CSS代码。第二方法也大量采用,脚本程序简单,可能会受到客户端禁用javascript等因素影响。第三方法优势在于与站点地图数据实时匹配,网站结构清晰,更新菜单层级和菜单项只需编辑Web.SiteMap,相比前两种方法,更易维护,增加代码更少。主要缺陷在于额外增加了服务器负担。这三种方法网页制作者可根据实际需求选择使用,都有项目实践的价值。 参考文献: [1] 刘乃琦, 郭小芳. ASP.NET应用开发与实践[M].北京人民邮电出版社,2012. [2] 魏颖颖.计算机技术与发展[J].基于CSS的网页下拉菜单设计与实现, 2011(4). 存入我的阅览室 《电脑知识与技术》 2017年36期
客服热线:400-656-5456 客服专线:010-56265043 电子邮箱:longyuankf@126.com 电信与信息服务业务经营许可证:京icp证060024号 Dragonsource.com Inc. All Rights Reserved |