【发布时间】:2011-05-20 12:44:16
【问题描述】:
我想显示一个包含大约 6000 个小图像缩略图(每个 40x40)的页面。为了避免发出 6000 个 HTTP 请求,我正在探索 CSS sprite,即将所有这些缩略图连接成一个长条,并使用 CSS 裁剪出所需的图像。不幸的是,我发现 JPEG 文件在任何一个维度上都不能大于 65500 像素。警惕网络堆栈的进一步限制,我想知道:以下任何一项都无法处理尺寸为 40x240000 的图像?
- Internet Explorer
- 歌剧
- WebKit
- 任何 CSS 规范
- 任何 HTML 规范
- PNG 规范
编辑:这样做的目的只是一次显示整个图像集,要求用户最多滚动。我希望“微型缩略图”流入现有的 CSS 布局,所以我不能只使用大的矩形图像。我不希望用户必须单击多个页面才能查看所有内容。像素的总数并不多——只有 2560x1600 显示器的两倍。所有微型缩略图的总文件大小只有几兆字节。假设每张图片都是在浏览器内存中未经压缩地处理的,每个像素占用 8 字节的存储空间(RGBA 加上 100% 的开销因素),我们所说的 RAM 使用量只有数百兆字节;对于 2010 年的专业应用来说并非不合理。唯一不合理的是如果单独发送所有微缩略图会产生的 HTTP 请求量。
【问题讨论】:
-
这里有个问题:你到底为什么要这么做?
-
这是非常不可取的 - 真的没有合理的理由将其分成多个页面吗?
-
并不是我建议这样做,我无法想象为什么您会希望页面上的 6000 个图像作为单独的精灵。但是你不会有一个 40x240000 的图像,你会有一个 3120x3120 的图像,它是一个 78x78 的图像正方形,为你提供了足够的空间来容纳 6084 个图像。在你的问题中解释你想要做什么。不是图片地图吗?
-
+1 表示“有趣”的因素,但是...哇 :-)
-
如果我不能使条带工作,我肯定会采用图像网格方法而不是图像条带方法 - 但如果可以,它会大大简化事情。
标签: css-sprites