admin 管理员组文章数量: 1086019
2024年3月5日发(作者:一键重装系统源码)
第21卷第4期 计算机技术与发展 Vo1.21 No.4 2011年4月 COMPUTER TEeHNOLOGY AND DEVELOPMENT Apr. 2011 基于CSS的网页下拉菜单设计与实现 魏颖颖,熊淑华,李 冲 (四川大学电子信息学院,四川成都610065) 摘要:随着人们对网络应用需求的不断增长,网页的内容也逐渐丰富起来,结构更加复杂。导航是网页设计的关键元 素.竖直和水平排列的一级菜单往往无法满足用户的需求。传统的下拉菜单制作方法有一定的局限性,功能不易扩展,而 且代码过于繁琐。CSS技术能够使网页的内容与表现相分离,代码简洁、易于修改。文中基于CSS设计和实现了一个两级 下拉菜单,克服了传统实现方法的不足,结构简单,网页空间占用少,可扩展性强,可以广泛应用在网页设计中。 关键词:HTML;CSS;导航;子菜单 中图分类号:TP311 文献标识码:A 文章编号:1673—629X(2011)04—0017—04 Design and Implementation of Web Drop-Down Menu Based on CSS WEI Ying-ying,XIONG Shu—hua,LI Chong (Institute of Electronic Information,Sichuan University,Chengdu 610065,China) Abstract:With people’S growing demand for network app ̄cations,contents of website are graduMly enriched and the structure becomes more complex.Navigation is a key element in web design.Vertical and horizontal arrnagements of a menu are often unable to meet US— ers’needs.Traditional methods of drop-down menu have some limitations which make the functions not easy to be expanded and the code is too cumbersome.CSS technology separates the content and performance of web page,thus its code is simple nad easy to modify. A two—stage drop-down menu is designed and implemented based on CSS.This design method overcomes the disadvantages of tmdi, ifonal methods. Because of its simple structure,less web space occupancy and high expansibility,it Can be widely used in web desing. Key words:HTML;CSS;navigation;submenu O 引 言 在早期的网站上,制作多级菜单是件很麻烦的事 随着网络技术的不断发展,网络应用已经渗透到 情,而且不易维护。但是近年来,随着新WEB标准的 社会生活的各个角落。互联网成为人们快速获取、发 不断普及.基于DIV+CSS的新型网页布局方式开始流 布和传递信息的重要渠道,Intemet上发布信息主要是 行.使用CSS制作的菜单可以非常方便地为网站带来 通过网站来实现的,网页作为网站呈现给用户的界面, 清晰的导航支持。CSS是Cascading Style Sheets(层叠 是制作网站必不可少的一部分。 样式表)的缩写,它是一种用来结构化文档、添加样式 导航是网页中非常重要的一项功能,各式各样的 的计算机语言。CSS布局与结构化语言HTML相结 网站都要用到导航菜单.便于用户了解整个网站的内 合能帮助设计师将内容与表现相分离,只要对相应的 容结构,有选择性地浏览自己所需的内容。传统的导 CSS代码做修改,就可以改变页面的布局和呈现方式, 航有竖直或水平方向排列的菜单,但是当网站的内容 使站点的访问及维护更加容易 ] 比较丰富,结构比较复杂的时候,一级导航菜单往往就 文中在HTML无序列表的结构基础上基于CSS 不够用了.这时就需要多级菜单来实现层次结构。下 技术制作了一个两级下拉菜单。 拉菜单是网页上最常见的效果之一,用鼠标轻轻一点 或是移过去,就出现一个更加详细的子菜单,它不仅节 1基于CSS的网页下拉菜单设计 省了网页排版的空间,而且使网页布局简洁有序…。 I.I设计原理 文中下拉菜单的外层结构采用HTML文档的无序 收稿日期:2010一o8—20;修回日期:2010—1l一13 列表,通过<ul>标记和<li>标记来实现。首标记<ul> 基金项目:四川省科技支撑计划项目(0020505501111) 作者简介:魏颖颖(1987一),女,河南安阳人,硕士研究生,研究方向 和尾标记</ul>之间的部分是无序列表的内容,<li>和 为多媒体通信;熊淑华,副教授,硕士生导师,研究方向为多媒体通 </li>之间是列表项的内容I3]。菜单的内层结构是在 信。 每个li列表项的内部采用另外一组HTML标记一dl、
・18・ 计算机技术与发展 第21卷 dt和dd,这组标记非常适合在设计子菜单中使用。dl 称为“定义列表”,使用方法相当于ul:dt和dd分别称 为“定义标题”和“定义描述”,使用方法相当于li。 设计过程是首先定义菜单的HTML结构.然后利 用CSS设置样式,最终实现当鼠标经过主菜单项时相 应的子菜单打开,鼠标离开时子菜单关闭的效果。 1.2核心技术 文中用到的核心技术是CSS.它是由W3C定义和 维护的一种标准。用来取代基于表格的布局、框架以及 其他非标准的表现方法。它与HTML的结合使用能够 将网页的内容和表现相分离.通过编写不同的CSS代 码可以使相同的网页内容以不同的页面布局显示出 来,改版方便,不需要变动页面内容,清晰合理的页面 结构可以提高网站的可用性。 CSS的语法很简单,一个样式表由一组规则组成。 每个规则由一个“选择器”和一个定义部分组成。每 个定义部分包含一组由半角分号(;)分离的定义。这 组定义放在一对大括号({})之间。每个定义由一个 属性,一个半角冒号(:)和一个值组成_4 ]。 选择器通常为文档中的元素,如HTML中的<body >,<p>等标签,多个选择器可以用半角逗号(,)隔开。 还可以在文档结构中定义ID选择器和类选择器,CSS 样式表中ID选择器以(样)开头,类选择器由(.)开头, ID选择器的优先级高于类选择器。属性用于控制选 择器的样式。值指属性接受的设置值,可由各种关键 字组成,多个关键字以空格隔开。 CSS样式可以采用嵌入式、内联式和外联式三种 形式来定义.外部样式表存放于扩展名为.CSS的文件 中.在<head>内使用<link>标签将文件链接到HTML 中,引用方式如下:<link rel=“stylesheet”href“men. u.CSS”type=“text/css”/> 这条引用语句也可以放在文件的body部位.习惯 放在head(头部)更便于代码的调试和查找_6]。这种 外联引用CSS样式的方式可以提升工作效率,节约服 务器的带宽。文中正是采用外部样式表来定义下拉菜 单的CSS样式。 1.3代码设计 1.3.1 建立菜单的整体结构 把整个菜单分为三组:各地美食,休闲娱乐和辅导 书籍。首先用ul和li标记定义出外层结构,然后在每 一个li列表项目中定义内层结构,使用dl定义一个菜 单项,一级菜单文字用dt定义,子菜单文字用dd定 义。以下列出这三组列表项的HTML代码 ]。 <body> <ul id=“menu”> <1i> <dl> <dt><a href=“#”>各地美食</a></dt> <dd><a href=“样”>北京</a></dd> <dd><a href=“#”>上海</a></dd> <dd class=“last”><a href=“#”>成都</a></dd> </dl> </li> <li> <dl> <dt><a href=“#”>休闲娱乐</a></dt> <dd><a href=“#”>影视</a></dd> <dd><a href=“样”>音乐</a></dd> <dd class=“last”><a href=“#”>书籍</a></dd> </dl> (/li> <li> <dl> <dt><a href=“#”>辅导书籍</a></dt> <dd><a href=“#”>语文</a></dd> <dd><a href=“#”>数学</a></dd> <dd class=“lsat”><a href=“#”>英语</a></dd> </dl> </li> </ul> </body> 1.3.2设置外层结构的CSS样式 对于菜单u1和li的外层结构。首先进行常规设 置,包括列表宽度、内外边距、字体等属性的设置。 #menu{ margin:0:/ 外边距设置为0 / padding:0;/ 内边距设置为0 / width:460px;/ 设置整体宽度为460px / list—st)rle—type:none; / 清除列表项前默认的圆点 / font:1lpx Axial; } #menu li{ lfoat:left; / 设置向左浮动.以实现横向排列 / padding:0; margin-fight:1px; / 使各个菜单项之间间隔1像素 / width:150px; / 设置每个列表项的宽度均为150px / 在上面所述代码中,每个列表项li的margin—right 设置为若干个像素值(此处设置了1像素)可以使得 各个菜单项之间有一定的间隔。另外,li列表默认的 采用竖直方式排列,为了实现横向排列效果,便于子菜
第4期 魏颖颖等:基于CSS的网页下拉菜单设计与实现 ・19・ 单项的设计,在li样式的第一行就把浮动方式(float) 属性的值设置为了left…。 1.3.3设置内层结构的CSS样式 / 主菜单项下面的暗红色边框 / #menu li dd.1ast{ border-bottom:l px solid#bOO;} / 子菜单项下面的暗红色边框 / C.链接文字效果。 对于菜单每个列表项li之间的内层结构。以第一 组菜单为例设置CSS样式。首先对dl列表进行如下 的常规设置: #menu li dl{ width:150px; margin:0; padding—bottom:lOpx; background:#9t9 url(bottom.gif)no-repeat bottom left; } 其中,padding—bottom设置为10px,用于预留打开 子菜单项的空间。 其次,分别对主菜单项dt和子菜单项dd设置样 式,常规设置有以下几项: #menu li dt{ margin:0: padding:5px; text—align:center;/ 使文字居中显示 / } #menu li dd{ margin:0: padding:0: color:#fff; background:#47a; } 除此之外.最为关键的技术是以下四种主要效果 的实现: A.圆角效果。 在CSS中,网页元素的圆角效果是采用插入带圆 角的背景图片,并设置放置方位的方式来实现的 。 文中使用了两张背景图片分别实现主菜单项上端和子 菜单项下端的圆角效果,与背景颜色同时设置。 background:#9f9 url(bottom.gif)no-repeat bot— tom left; / 给每个菜单项增加背景颜色。背景图片放在最 底下.使下端产生圆角效果 / background:#f60 url(top.gif)no-repeat top left; / 显示主菜单项上方的圆角 / B.主菜单与子菜单的分割效果。 在主菜单项下面设置一条暗红色的边框作为和子 菜单的分割。同样的,在子菜单项最下面的dd项下端 也设置一条边框,使其与上端的分割线相对应。 border-bottom:1 px solid#bOO; (1)主菜单项的链接文字效果设置¨ 。 #menu li dt a,#menu li dt a:visited{ display:block;/ 设置为块状元素,使得当鼠标 经过整块区域时都能打开子菜单 / color:#fff:/¥字体为白色 / text—decoration:none:/}去掉下划线 / } (2)子菜单项的链接文字效果设置。 #menu li dd a,#menu li dd a:visited{ height:1em; display:block; color:#fff; text-decoration:none; padding:4px 5px 4px 20px; background:#-47a url(arrow.gif)no-repeat lOpx 10px; / 添加一个小三角形图像做背景 / f D.鼠标响应效果。 (1)设置鼠标没有经过主菜单项区域时隐藏子菜 单的效果。 #menu li dd{display:none;} (2)对li使用:hover伪类,以实现当鼠标经过时 打开子菜单的效果 …。 #menu li:hover dd,#menu li a:hover dd{display: block;} (3)设置当鼠标经过子菜单的某一项时,字体和 背景颜色发生变化,以显示出区别。 #menu li dd a:hover{ background:#147;color:#9cf;} 2基于CSS的网页下拉菜单实现 至此,整个下拉菜单的HTML结构和CSS样式就 设计完成了,在IE7或Firefox中可显示出下拉效果。 2.1 鼠标没有经过主菜单项区域的显示效果 在网页浏览者没有进行鼠标操作的情况下,此下 拉菜单的显示效果如图1所示,各主菜单项呈水平排 列,文字下方有一条边框作为和子菜单项的分割,此时 鼠标没有经过主菜单项区域,按照前面的鼠标响应设 图1 鼠标没有经过主菜单项区域时的演示效果
・20・ 计算机技术与发展 第21卷 置,子菜单项被隐藏。 2.2 鼠标经过主菜单项区域的显示效果 接文字和鼠标响应的显示效果,最终达到当鼠标指针 经过主菜单项区域时,子菜单项被打开的效果。对于 大多数的网站而言,两级的下拉菜单已经可以满足绝 大多数的需要,通过调整CSS样式表中的参数还可以 当网页浏览者的鼠标经过某一主菜单项区域时, 下拉菜单效果就显示出来了,如图2所示.这时相应主 菜单dl列表padding—bottom¨ 设置的10px预留区域 I被打开.子菜单项随之显示出来.这10px的区域就移 动到了子菜单最后一项的下方。整个子菜单有深色的 背景颜色和浅色的文字。每个菜单项前面的小三角形 制作出更加精美的导航菜单 。 参考文献: [1]温谦.CSS设计彻底研究[M].北京:人民邮电出版社, 用于显示列表效果。当鼠标经过某一子菜单项时,其 文字和背景颜色都发生了变化。打开其他子菜单项也 是相同的效果 2o08. 『2]裴丽艳,于学垄.在网页中用CSS技术实现纵向标签页 [J].电脑知识与技术,2009,5(2):439—4J41. [3]胡[4]李海,徐华勇.CSS完全实例教程[M].北京:电子工业 烨.别具光芒DIV+CSS网页布局与美化[M].北京: 出版社.2001. 人民邮电出版社 2007. [5] 陈柳海.实用CSS使用经验总结[J].科技传播,2010 图2 鼠标经过主菜单项区域时的演示效果 (12):219-222. 文中基于CSS技术制作出来的下拉菜单样式美 观,当浏览者没有进行鼠标操作的情况下,网页上只显 示主菜单项,子菜单项是隐藏的,不会影响整个网页的 显示效果和浏览速度,当浏览者需要查看某个菜单的 『6] 丁海燕,邹疆,邱莎.用层叠样式表CSS技术实现网页 特效[j].昆明冶金高等专科学校学报,2010,26(3):5—8. [7]周 登,戴玉刚,付[8]柳涛.基于树结构的Web信息抽取 [J].计算机技术与发展,2009,19(9):38—41. 鸿.CSS样式表在网页制作中的应用[J].科技创新导 报,2010(7):33—34. 详细资料时就可以将鼠标移动到该主菜单项区域,这 时子菜单项就会打开,并通过列表形式展现在浏览者 的眼前,浏览者可以根据需要进入到相应的菜单项查 看相关内容。这种下拉菜单结构易于实现,实用性强, 不会占用很大的空间,在网页设计中可以被广泛采用。 [9] 吴晓燕.浅析CSS样式在网页设计中的应用[J].四川文理 学报,2009(2):46—48. [10]Kurniawan S H,King A,Evans D G,et a1.Personalising web page presentation for older people[J].Interacting with Com— puters,2006,18(3):457-477. 3结束语 文中制作了一个两级下拉菜单。整体菜单结构的 f 1 1]Quadros.J0/iao.Microtexture of chloride treated CdTe thin iflms deposited by CSS technique[J].Journal of Materials Sci- ence,2008,43(2):573—579. 外层使用了HTML的无序列表ul和列表项li,内层使 用了d1、dt和dd分别对整体菜单项和主、子菜单项进 行标记。关键技术在于使用CSS分别实现了圆角,链 (上接第16页) [2]李亚楠,刘连忠.数据交换研究[J].计算机技术与发展, 20o8,墙(2):5—8. [12]Reichardt,Ben.Quantum Universality from Magic States Dis— tillation Applied to CSS Codes[J].Quantum Information Pro— cessing,2005,4(3):25l一264. 配器研究[J].计算机应用研究,2009,26(1):189—191. [8]顾 宁,刘家茂,柴晓路.Web Services原理与研发实践 『M].北京:机械工业出版社,2006. [3] 王艳敏,谢强,丁秋林.基于本体和web Services的数据 交换平台[J].计算机技术与发展,2010,20(5):112一l16. [4]Glushko R J,Tenenbarm J M,Meltzer B.An Xml ̄amework for anger—based Ecommerce[J].Communications of the ACM,1999,42(3):106—114. [9] 王海波,耿晖,姜吉.基于XML的数据交换的实现 『J].计算机应用,2001,21(4):67—68. [10]杨剑,唐慧佳,孙林夫,等.基于XML的异构数据交换系 统研究与实现[J].计算机工程,2005,31(19):195—197. [5] Microsoft.Whate is BizTalk Server[EB/OL].2006.Http:// WWW.microsoft.com/biztalk/evaluation/what—is—biztalk— server・aspx・ 『11]唐俊伟,基于Web技术的数据交换平台的研究与设计 『D],西安:西北工业大学,2006. fl21张奇勇,王东.基于XML及SOAP的信息交换平台研究 [6]Webber D R R,Yader M,Hardin J.The Benefits of ebXML or e—Busifness『J1.Electronic Business XML Initiative,2004, 20(12):12-22. 『J].计算机应用与软件,2007,24(10):4o一41. 『13]祝衍军.公共数据安全交换平台的数据交换引擎研究与实 现『D].沈阳:中国科学院研究生院,2008. 『71 王淑营.面向制造业产业链协同商务系统的数据交换适
版权声明:本文标题:基于CSS的网页下拉菜单设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1709649709a542723.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论