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

html-css08

怎么用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语句都起到效果。

当然,如果故意打乱顺序,也会造成一些特殊的效果。比如,可以为链接制造出下划线颜色与文字颜色的差异。

主要通过css控制A 标签不同状态下的样式

比如

a{background:url(a.jpg)}

a:hover{background:url(b.jpg)}