日期:2014-05-16  浏览次数:20518 次

《转》多个图片整合到一张图片上,css网页背景定位

众所周知,减少网站加载时间的最有效的方式之一就是减少网站的HTTP请求数。实现这一目标的一个有效的方法就是通过CSS?Sprites——将多个图片整合到一个图片中,然后再用CSS来定位。

CSS?Sprites?的目的就是通过整合图片,减少对服务器的请求数量,从而加快页面加载速度。

?

实现方法:

首先将小图片整合到一张大的图片上,为了简单化,可以把多图放在同一列上,这样就可以把x轴定义为0。

然后根据具体图标在大图上的位置,给背景定位。background-position:-8px?-95px;

例子:

我们使用上图中的auther.gif作为背景时,如果代码如下:

<div?class="max">最大化</div>

这两个class都使用同一个图片:

.max?{

width:16px;

height:16px;

background-image:url(/images/css-sprites.gif);

background-repeat:?no-repeat;?//我们并不想让它平铺

text-indent:-999em;?//隐藏文本的一种方法

}

效果都只能得到上图中的tag_icon.gif中的图为背景,根本无法得到我们需要的背景。因为我们还没有指定background-position,默认为?0?0,可以看下上图,刚好是tag_icon.gif图。好了,我们要找到代表auther.gif的图在大图中的位置找出来。经过测量,按钮位于Y轴的350px处,按钮位于x轴50px处。想一想我们如何才能让它们能够显示出来呢?明显得到代码如下:

.max?{

background-position:?50?-350px;