首先把菜单需要的图片做成背景透明gif或者png图片(各有利弊,gif质量不高,png IE6不支持透明),思路就是用css控制背景色,通过透明图片展现,从而达到你要的效果。
第二种方法就是普遍使用的替换图片
准备两套图片,一套是默认状态下,一套是变换颜色后。
简单的写段演示
<ul>
<li><a href="#" class="nav_1"></a></li>
<li><a href="#" class="nav_2"></a></li>
<li><a href="#" class="nav_3"></a></li>
</ul>
CSS代码
ul li .nav_1 a{background:url(xxxx.jpg)}
ul li .nav_1 a:hover{background:url(xxxx2.jpg)}
依此类推
还有其它办法,例如滤镜等,但没人用了,兼容性不好,速度还差
仍有疑问,站内消息
注意一下:书写正确的链接样式:link--visited--hover-active,也就是我们常说到的"爱恨原则"(LoVe/HAte)原则(即四种伪类的首字母:LVHA)。
这个人讲的非常透彻:引自灵眸●第一炉沉香博客
a :link、a:hover、a:visited这几个元素,定义CSS时候的顺序不同,也会直接导致链接显示的效果不同。
我想,原因就在于浏览器解释CSS时遵循的“就近原则”。
举例来说:
我想让未访问链接颜色为蓝色,活动链接为绿色,已访问链接为红色:
第一种情况:我定义的顺序是a:visited、a:hover、a:link,这时会发现:把鼠标放到未访问过的蓝色链接上时,它并不变成绿色,只有放在已访问的红色链接上,链接才会变绿。
第二种情况:我把CSS定义顺序调整为:a:link、a:visited、a:hover,这时,无论你鼠标经过的链接有没有被访问过,它都会变成绿色啦。
这是因为,一个鼠标经过的未访问链接同时拥有a:link、a:hover两种属性,在第一种情况下,a:link离它最近,所以它优先满足a:link,而放弃a:hover的重复定义。
在第二种情况,无论链接有没有被访问过,它首先要检查是否符合a:hover的标准(即是否有鼠标经过它),满足,则变成绿色,不满足,则继续向上查找,一直找到满足条件的定义为止。
一句话:在CSS中,如果对于相同元素有针对不同条件的定义,宜将最一般的条件放在最上面,并依次向下,保证最下面的是最特殊的条件。
这样,浏览器在显示元素时,才会从特殊到一般、逐级向上验证条件,才会使你的每一个CSS语句都起到效果。
当然,如果故意打乱顺序,也会造成一些特殊的效果。比如,可以为链接制造出下划线颜色与文字颜色的差异。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<meta name="robots" content="all" />
<title>纯CSS的下拉菜单 支持IE6 IE7 Firefox</title>
<style type="text/css">
*{margin:0padding:0}
.menu{font-size:12pxposition:relativez-index:100}
.menu ul{list-style:none}
.menu li {float:leftposition:relative}
.menu ul ul {visibility:hiddenposition:absoluteleft:3pxtop:23px}
.menu table {position:absolutetop:0left:0}
.menu ul li:hover ul,
.menu ul a:hover ul{visibility:visible}
.menu a{display:blockborder:1px solid #aaabackground:#cacacapadding:2px 10pxmargin:3pxcolor:#ffftext-decoration:none}
.menu a:hover{background:#fafafacolor:#000border:1px solid #000}
.menu ul ul{}
.menu ul ul li {clear:bothtext-align:leftfont-size:12px}
.menu ul ul li a{display:blockwidth:100pxheight:15pxmargin:0border:0border-bottom:1px solid #858585}
.menu ul ul li a:hover{border:0background:#fafafaborder-bottom:1px solid #fff}
</style>
</head>
<body>
<div class="menu">
<ul>
<li><a href="#">XHTML/CSS
<!--[if IE 7]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<ul>
<li><a href="#">标准</a></li>
<li><a href="#">教程</a></li>
<li><a href="#">技术文章</a></li>
<li><a href="#">常见问题</a></li>
<li><a href="#">布局教程专题</a></li>
<li><a href="#">CSS菜单</a></li>
<li><a href="#">浏览器兼容</a></li>
<li><a href="#">滚动条相关</a></li>
<li><a href="#">圆角矩形专题</a></li>
<li><a href="#">CSS特效欣赏专题</a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li><a href="#">07艺术
<!--[if IE 7]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<ul>
<li><a href="#">网页教学网</a></li>
<li><a href="#">网页教学网</a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li><a href="#">Javascript
<!--[if IE 7]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<ul>
<li><a href="#">JSON</a></li>
<li><a href="#">技术文章</a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li><a href="#">DOM</a></li>
<li><a href="#">XML</a></li>
<li><a href="#">正则表达式
<!--[if IE 7]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<ul>
<li><a href="#">正则表达式简介</a></li>
<li><a href="#">正则表达式之道</a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li><a href="#">网站优化</a></li>
<li><a href="#">电脑网络</a></li>
<li><a href="#">建站技术
<!--[if IE 7]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<ul>
<li><a href="#">HP</a></li>
<li><a href="#">ASP</a></li>
<li><a href="#">ASP.NET</a></li>
<li><a href="#">JSP</a></li>
<li><a href="#">SQL</a></li>
<li><a href="#">Flash</a></li>
<li><a href="#">Dreamweaver</a></li>
</ul>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
</ul>
</div>
</body>
</html>