怎么用CSS定义菜单连接的图片

html-css024

怎么用CSS定义菜单连接的图片,第1张

第一种方法可能对你有点复杂也比较老套,不过还是提一下

首先把菜单需要的图片做成背景透明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>