sprites 的主要目的是减少向服务器发出的对页面上图形元素的 http 请求吗?或者您是否想尝试将尽可能多的元素添加到精灵中。
我想我要问的是:精灵什么时候太大了?
sprites 的主要目的是减少向服务器发出的对页面上图形元素的 http 请求吗?或者您是否想尝试将尽可能多的元素添加到精灵中。
我想我要问的是:精灵什么时候太大了?
当用户必须等待文件下载才能使用页面时,它太大了。
如果您使用 PNG 作为 sprite 图像类型,请记住每一行通常独立于其他行进行压缩(放气)。
因此,为了帮助平衡精灵数量/图像大小,请尝试将相似的精灵水平而不是垂直放置彼此相邻 - 以利用压缩。
PNG 还支持“预测器”,它只存储预测值(基于同一行中的前面的行和前面的像素)和实际值之间的增量。
找到一个好的图像编辑器,它允许您设置不同的 PNG 预测器压缩设置(或自动优化)以找到最适合您的图像的设置。
sprites 的主要目的是减少向服务器发出的对页面上图形元素的 http 请求吗?
是的,您希望避免对小图像有很多请求。将它们组合成一个精灵可以在一个 http 请求中获取它们。
什么时候精灵太大了?
这实际上是您要查看的所有请求的总和。精灵太大的唯一方法是它的部分的总和(这正是精灵的样子)太大而无法开始。
关于精灵,你也应该看看这篇博文下面关于内存使用的讨论:http: //blog.mozilla.com/webdev/2009/03/27/css-spriting-tips/
我的建议:
您可以将所有小的静态设计元素打包到一个主图像中,而不会出现大问题。
当然,如果您的网站上有 10 兆像素的照片,那么将它们打包在一起会很疯狂。
当您只包含基本 UI 元素之外的任何内容时,CSS 精灵就太大了。这些是小的补充图像,例如图标和徽标,压缩不会对质量造成太大损害。由于所有这些图像本来都是独立加载的,因此您不会比单独请求它们更糟糕。如果加载时间过长,则问题不在于精灵,而在于正确压缩图像。
是的,主要目的是减少请求(并因此减少加载时间)。另一个优点是您只需要担心正确缓存一个图像。提示:使用 PNG 图像,因为它们的压缩处理大的白色(“空白”)区域最好。
谷歌地图使用 [256x256] 像素图像。