首页 > CSS, 精华文章 > CSS Sprites技巧:单个图片插入多个链接

CSS Sprites技巧:单个图片插入多个链接

2010年3月3日 作者: 发表评论 阅读评论

平时我们做网页的时候会用到img标签来插入图片,再结合a标签可以给图片加上链接,但是其实单独用a标签就可以实现这样的效果,而且可以在单个图片中插入多个链接

本文的基本做法就是用CSS Sprites将多个图片合并为1个,用CSS中的background属性代替img标签,用background-position来实现多个图片链接的最终效果。

例如原来3个图片链接的HTML代码如下

<a href="#"><img src="#" /></a>
<a href="#"><img src="#" /></a>
<a href="#"><img src="#" /></a>

现在用CSS Sprites时HTML代码为

<a id="a"href="#">链接名称1</a>
<a id="b"href="#">链接名称2</a>
<a id="c"href="#">链接名称3</a>

CSS代码为

#a,#b,#c{
	display:block;
	width:250px;
	margin:5px auto;
	text-indent:-999em;
	background:url(img.png) no-repeat;
}
#a{
	height:100px;
	background-position:0 0;
}
#b{
	height:90px;
	background-position:0 -100px;
}
#c{
	height:70px;
	background-position:0 -190px;
}

注:本例中的图片为250*260(a,b,c的高度分别为100px,90px,70px),我的小站这样做修改后的实际效果如下图,具体效果可以参看http://www.zenoven.com首页右下角处的图片链接。

那么有朋友要问,这样做的好处是什么呢?

1、3个图片合为1个,减少了HTTP请求数量,在图片大小没有大的变化时可以加快网页加载速度。

2、a标签中的<img />没有了,取而代之的是链接名称,有利于SEO。

3、DIV+CSS的一个要求是内容与表现形式的分离,这样做可以在不修改HTML的情况下直接通过修改CSS更换图片。

无觅相关文章插件,快速提升流量

  1. 2010年3月3日14:41

    木有看到效果嘛。。。

    [回复]

    zenoven 回复:

    有的啊,在首页右下角,我文章页的sidebar没显示

    [回复]

    万戈 回复:

    哦哦,看到了,和我想象中的不一样

    [回复]

  2. 2010年3月3日14:59

    技术文章 闪过 看不懂代码

    [回复]

    zenoven 回复:

    其实也没啥的

    [回复]

  3. 2010年3月3日15:00

    这个方法很值得提倡。。

    [回复]

    zenoven 回复:

    我也是想尽办法加快网页打开速度

    [回复]

  4. 2010年3月3日19:05

    不错。。很久没来。。

    [回复]

    zenoven 回复:

    呵呵,我也是很久没到处逛了

    [回复]

  5. 2010年3月4日01:09

    单个图片插入多个链接呵呵笨笨的话会用最笨的方法DW里面的热点功能。。。够傻吧

    [回复]

    zenoven 回复:

    只要能达到自己的效果就行了

    [回复]

    笨笨 回复:

    你的教程那才叫杠杠的。。

    [回复]

  6. 2010年3月4日09:54

    嘿嘿
    这个效果不错哈。

    [回复]

    zenoven 回复:

    夸奖了

    [回复]

  7. 2010年3月4日18:14

    几个LOGO不错!

    [回复]

    zenoven 回复:

    我也是找的

    [回复]

  8. 2010年3月4日18:59

    我一開始還在想
    一個圖片連3個
    那到底是打開哪一個
    現在算是懂了
    哈哈

    [回复]

    zenoven 回复:

    把你弄迷糊了吧

    [回复]

  9. 2010年3月5日09:53

    嗯,这个效果就跟以前的map是一样的。

    [回复]

    zenoven 回复:

    嗯 搜索引擎看到的是a标签,我们看到的是图片

    [回复]

  10. 2010年3月5日14:49

    这个CSS效果要多应用,比如你的表情也可以这样做

    [回复]

    zenoven 回复:

    表情这样实现不了吧,是动态的呢。。。

    [回复]

  11. China Wholesale
    2010年4月6日20:50

    功能很强大,采用了CSS Sprites 技术,让我的网站速度快了一点,就这一点,意义是很大的,大大减少了向服务器Request!给网站服用器减压拉!再次感谢!

    [回复]