从最简单和朴素的水平导航菜单栏到复杂的图片导航菜单栏的实现
2007-10-09 09:53 java ee spring 阅读(221) 评论(0) 编辑 收藏 举报菜单列表信息采用ul/li标签进行标记,当前页面所对应的菜单项用id=“current”进行标识,鼠标移动到的菜单项通过伪元素a:hover进行选择。首先让每个li元素水平排列,并去掉前面的列表符;然后设置#current对象的字体颜色和背景色;最后设置a:hover对象的字体颜色和背景色。就这么简单,一切ok!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>www.itcast.cn</title>
<style type="text/css">
* {
font-size:12px;
text-align:center;
}
body {
background:#f0f0f0;
}
#nav {
width:700px;
margin:20px auto;
background:#f3c3f3;
padding:8px 12px;
list-style-type: none;
}
#nav li {
display: inline;
margin-right:8px;
}
#nav li a{
text-decoration: none;
color:#000;
}
#nav li a:hover {
color:#fff;
background-color:#c3f3c3;
}
#nav li a#current {
color:#c00;
background-color:#ccc;
}
</style>
</head>
<body>
<ul id="nav">
<li><a href="http://www.itcast.cn" id="current">java培训</a></li>
<li><a href="http://www.itcast.cn/">.net培训</a></li>
<li><a href="http://www.itcast.cn/">oracle培训</a></li>
<li><a href="http://www.itcast.cn/">ejb培训</a></li>
<li><a href="http://www.itcast.cn/">工作流培训</a></li>
</ul>
</body>
</html>
如何要把上面的导航菜单栏改为类似csdn的blog后台的导航栏图片形式,可以采用一种简单方式,即设计3个用作标签页的图片,将它们作为菜单的3种状态的背景图片,由于我自己没有图片,下面只能示意一下了:
#nav li a:hover {
color:#fff;
background-image:url(/img/hover.gif);
}
#nav li a#current {
color:#c00;
background-image:url(/img/active.gif);
}
最后,我们可以把hover.gif,active.gif,normal.gif等表示3种状态的图片合并为一个图片,每种状态通过定位图片的坐标来分别显示不同的图片区域,csdn的blog后台的导航栏图片采用的就是这种方式,如下所示:
采用这种将多个图片合并为一个图片的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>www.itcast.cn</title>
<style type="text/css">
* {
font-size:12px;
text-align:center;
}
body {
background:#f0f0f0;
}
#nav {
width:700px;
margin:20px auto;
background:#f3c3f3;
padding:8px 12px;
list-style-type: none;
}
#nav li {
display: inline;
margin-right:8px;
}
#nav li a{
background-image:url(http://writeblog.csdn.net/resources/images/tabrightF.gif);
text-decoration: none;
color:#000;
float:left;
padding:6px 15px 5px 10px;
margin-right:3px;
}
#nav li a:hover {
color:#fff;
background-position:right -42px;
}
#nav li a#current {
color:#c00;
}
</style>
</head>
<body>
<ul id="nav">
<li><a href="http://www.itcast.cn" id="current">java培训</a></li>
<li><a href="http://www.itcast.cn/">.net培训</a></li>
<li><a href="http://www.itcast.cn/">oracle培训</a></li>
<li><a href="http://www.itcast.cn/">ejb培训</a></li>
<li><a href="http://www.itcast.cn/">工作流培训</a></li>
</ul>
</body>
</html>