页面导航菜单的设计
来源:互联网 发布:制作电子音乐的软件 编辑:程序博客网 时间:2024/05/17 07:51
导航菜单是web页面中一个重要的部分,是整个站点便捷性的体现。一个设计良好的导航既可以方便用户浏览整个网站,同时也是吸引用户眼球的一个亮点。现在的站点设计的第一原则是简洁大方,导航的设计也不例外。下面以一个CSDN站点导航设计为蓝本,结合CSS、jQuery介绍动态主导航菜单设计的几个要点。
以一个二级菜单为例,当进入一级菜单所在页面后,显示相应一级菜单下的二级菜单列表,其他二级菜单为隐藏状态。最终效果如下图所示:
html代码片段:
<body id="serv"> //表示该页面为service页面,用于CSS代码识别突出显示当前的导航菜单
<div id="nav"> <div id="menubar"> <div id="mainmenu"> <ul class="nav"> <li><a href="javascript:void()">Home</a></li> <li class="prod"><a href="javascript:void()">Products</a> <ul> <li><a href="software">Software</a></li> <li><a href="hardware">Hardware</a></li> <li><a href="other">Other</a></li> </ul> </li> <li class="serv"><a href="javascript:void()">Service</a> <ul> <li><a href="jQuery">jQuery</a></li> <li><a href="Hadoop">Hadoop</a></li> <li><a href="MapReduce">MapReducee</a></li> </ul> </li> <li><a href="javascript:void()">Contact us</a></li> </ul> </div> <div id="submenu"></div> </div></div>
上述代码为导航菜单的主要结构,由两层嵌套的列表组成。重点是要给父列表的列表项增加相应的class属性,用于和body元素class属性组合突出显示当前页面的导航菜单。
1、列表浮动
因为导航为水平方向,所以必须使父列表和子列表都水平向左浮动。并设置相应的宽度。
ul.nav li { //该选择器包含二级列表包含的列表项 float: left; width: 12em; line-height: 43px; //使菜单文字垂直居中}
2、子菜单隐藏
在特定的某个页面,只有属于该页面的二级菜单才会显示在页面中,所有其他页面的二级菜单都是不显示的,所以要将其隐藏,待用户导航至相应页面时,再将相应页面的二级菜单取消隐藏。css中可以绝对定位技术可以实现这种要求。
通过将二级菜单的列表进行绝对定位,使其定位到屏幕以外的地方使其实现”隐藏'。
ul.nav li ul { position: absolute; left: -999em;}这样默认情况下,所有二级列表都绝对定位到父列表项左边-999em单位的地方(屏幕以外的地方)。在后面的适当时候再将属于某个页面的二级菜单重现定位,即可使其出现在相应父列表项的下面位置。
3、突出显示当前页
为了突出显示当前页面,需要将属于该页面的二级菜单显示出来,使其处于可选择状态。但是浏览器如何知道当前页面该显示哪个二级菜单呢?可以在页面主体元素如body中增加一个ID或class属性,同时在每个父列表项中增加ID或class属性以形成[body.id li.id]的唯一组合来突出显示当前页面。
#hom .nav li.hom ul,#prod .nav li.prod ul,#serv .nav li.serv ul,#cont .nav li.cont ul //4种组合中每个页面只会有一个选择器被选中{ left:auto; //使浏览器重新自动计算列表的位置。}
4、背景图像及颜色设置
在突出显示当前页面的技术中,除了使二级菜单显示出来之外,还可以通过给列表项替换背景图片,使其更加醒目。
#hom .nav li.hom,#prod .nav li.prod,#serv .nav li.serv,#cont .nav li.cont{ background: url(../img/arrow_nav_drop.gif) no-repeat center 0;}这样便出现了开始时看见的导航样式了,每个页面的一级菜单通过向下的箭头指向属于该页面的二级菜单。
说明:图中红色上部分高度为38px,下半部分为32px,但是为了能够显示向下箭头指示效果,我们将上面的div高度设为43px(5px为箭头的高度),下面的高度设为27px.
当鼠标移动到非当前页面的一级菜单时,我们希望能够以不同的背景色突出显示,按照上面的高度比例,会出现下面的效果。背景色超出了红色部分。
原因是css中背景色是覆盖内容区域和内边距的。所以我们可以如下设计代码:
ul.nav>li:hover>a, ul.nav>li:focus>a{ height: 38px; margin-bottom: 5px; background-color:#f00;}在hover、focus时,使其内容高度减小到38px即红色部分的高度,同时也为了确保下面的二级菜单保持原位不动,将外边距设置为5px(43px-38px)。
这样一个简洁大方的导航菜单便完成了。
- 页面导航菜单的设计
- jQuery页面边缘固定的导航菜单
- 页面导航设计的快速验证方法
- 页面导航设计的快速验证方法
- 使用jQuery开发iOS风格的页面导航菜单
- 使用Jquery的toggle实现页面导航菜单
- 导航页面设计
- 网站导航菜单设计案例
- javascript 简单导航菜单设计
- 分享20佳极具创意的网站导航菜单设计案例
- 推荐Jquery 40个漂亮的导航菜单设计
- 设计响应式导航菜单的五大法则
- 设计响应式导航菜单的五大法则
- 设计响应式导航菜单的五大法则
- 10条必知的网页导航菜单设计原则
- 10条必知的网页导航菜单设计原则
- 网页设计,本页面内左侧菜单导航右侧显示内容简单实现方法
- ExtJs的菜单导航
- Java静态变量的初始化(static块的本质)
- Python基本模块整理(一)
- java的网络编程
- 求阶乘,下面的方法可以避免数据溢出,很值得学习。
- android opengl es总结
- 页面导航菜单的设计
- IOS开发中让点击屏幕任何地方可以隐藏键盘的方法
- 六款常用的linux C/C++ IDE
- Custom Constructors
- 客户端的IP地址伪造、CDN、反向代理、获取的那些事儿
- 面试相关杂记1
- 二分法查找
- CDN(内容分发网络)
- 有关Calabash-Android