一直以来,很多的csser切图都喜欢将整个站点的图片切成一小块一小块,然后使用css技术对图片进行控制,其主要原因是因为这个可以更快的让用户看到你的站点,因为图片的下载需要时间,然而这个说法已经几近被推翻。
一个颜色和布局略微复杂点的网站,如果按照这种思想来切图的话,会产生很多很多的小图片,这样就可以更快的被用户下载到本地。但是事实上,并不是这个样子的。之所以要这样切图,是因为考虑到以前网速带宽都非常的小,为了让用户更快的看到信息,所以才将图片一小块一小块的切开,然而用户在浏览的过程中,图片被一快一块的加载,直至完全显示,但是,在如今网速已经比较的快的情况下,图片太大已经不在是影响用户浏览网站的主要因素了。一个网站如果要完全显示在用户面前,必须经过这几个步骤,客户端向服务器发送请求,服务器执行客户端请求,服务器发送数据到客户端,客户端解释编码,客户端索引数据,客户端显示数据。这样一个网站如果要完成显示那么就会先将所有的图片下载到本地,然后执行图片检索,对每一个图片都执行检索,然后才能显示出来。也就是说,如果有很多的图片,那么客户端就必须对那些图片做一个检索才能显示,如果只有一张图片那么客户端就只需要对图片检索一次就可以显示。
这样很多人会问,如果背景作为一张大图的话,那岂不是要花更多的时间去下载么?事实上是这个样子的,但是背景图片只需要下载一次,而且现在的网速下载个1M的图片也不费什么力气,而且一旦下载完成,如果用户需要浏览其他也面的时候就不用去下载其他的小图片,可以直接结合css解释了,就可以呈现给用户一个美丽的网站了。关于此,我们在切图的时候尽量不要切成过多的小碎片,我们可以保留稍大的完整的图片,然后使用css背景的background-position属性来控制图片的位置,可以用一张图片可以完成许多地方的背景。这样可以减少客户端电脑的检索次数,同时也可以减少服务器响应请求的次数,尤其是这个年代服务器代理商遍地皆是,大多数人为了便宜使用虚拟主机,这样切图就更有意义,可以减少服务器的压力。而且切的小图片的所用存储大小的和,可能还要比原图大,如果不压缩的话,那样就更不明智。
另外关于将图片切成gif格式还是jpg格式,一直是一个争论。Gif格式对色块比较相近和明显的图片有优势,而jpg则对变化非常明显和频繁的图片有优势。例如我们在切一个渐变的导航条的时候,如果用gif格式,会产生色条拼接成渐变的效果,那么我们就会看到明显的分段,如果切成jpg格式的话,那么渐变就非常平滑,而不是分层的结果,同时所占的存储空间也不一样。如图:

Gif格式,放大后,gif可以看到明显的条块,大小为1.6kb

Jpg格式,放大后,可以看到渐变很平滑,大小为1016字节
从上图的对比可以看出来,gif格式和jpg格式不能一概而论,而是应该在不同的情况下采取不用的切片格式。
综上所述,我们在切图的时候不应该以偏概全,要结合实际,决定是否切成小图片,还是使用整张图片,使用gif格式,还是jpg格式。
