让我先说明我意识到反对为大图像做CSS Sprites的论点。我甚至问a question为什么这可能被认为是个坏主意(并添加了answer of my own)。现在我们已经有了这个话题......
我将制作一个大型的CSS Sprite-map。对于制作这个精灵图的过程,我应该知道精灵图像的高度和/或宽度存在什么(如果有的话)限制,以便浏览器正确处理它。
这个问题背后的最终原因是关于是否在网格或单行/列中布置精灵图像的争论。例如:4000 x 3000而不是400 x 30000是否必要或有益?
编辑:这里的关键点不是图像的大小,而是浏览器可以为精灵处理的大小。鉴于到目前为止缺乏细节,我正在开始生成单大列精灵。一旦完成,我会将我的经历细节作为答案发布。
答案 0 :(得分:4)
有时候更多的是下载时间问题。由于浏览器可以使用多个连接来下载文件,因此一个巨大的图像可以下载比一些较小的图像需要更长的时间。
如果您的图片太大以至于减慢了页面加载速度,那么可能需要考虑几个较小的精灵图像。
Direct-X 9的大小限制为4096像素,因此应用于这些元素的任何Internet Explorer过滤器都会以4096像素裁剪它们。
答案 1 :(得分:1)
实际上,对于 400x16560 的精灵图片,Firefox 5 +,Chrome和IE7 +中的似乎没有问题。
IE的directx渲染引擎在超过4096px的图像上失败的潜在问题不会在IE7或更高版本中产生问题;我们没有方法或需要为我们当前的项目测试IE6。
我们遇到一个非常大的spritemaps问题的地方是移动平台。 Android设备可以很好地处理它们,但iOS设备严重崩溃,并且以一种奇怪的方式:它们缩小图像以适应它们接受的尺寸。所以我们的CSS适用于小的spritemap,但除了增加spritemap图像的物理尺寸之外没有任何变化,sprited图像开始显示相同html实体中spritemap的四倍,具有完全相同的CSS。 / p>
答案 2 :(得分:0)
版本1.0中的限制在v1.1中升级但是维度仍有限制:
In accord with version 1.1, the scope of the 31-bit limit on chunk
长度和图像尺寸已扩展为适用于所有人 四字节无符号整数。签名时不允许使用值-231 整数。
一个有趣的限制是IE6.0无法显示大小为4097或4098字节的PNG图像!
但与我们在网页中使用的内容相比,这些限制非常大。