【发布时间】:2013-06-07 13:15:01
【问题描述】:
我正在开发一个使用 IMG 标签来显示 SVG 文件的移动网站。 SVG 文件大约 500 kB。该图像在 Firefox 和 Chrome 的 Android 版本中呈现正常。然而,在 iOS Safari 中,我只能看到一个可怕的蓝色小盒子,里面有一个问号。
我知道 iOS 中图像文件的大小是有限制的。根据苹果的Safari Web Content Guide:
对于 RAM 小于 256 MB 的设备,解码的 GIF、PNG 和 TIFF 图像的最大大小为 3 兆像素,对于 RAM 大于或等于 256 MB 的设备,最大大小为 5 兆像素。
也就是说,对于 RAM 小于 256 MB 的设备,确保宽度 * 高度 ≤ 3 * 1024 * 1024。请注意,图像的解码大小远大于编码大小。
我认为 SVG 文件的大小有一些限制,但由于它们是矢量化的,因此用解码像素来描述它们的大小并没有什么意义。有谁知道 SVG 文件的限制是如何确定的?
附:当我直接浏览 SVG 文件而不是通过 HTML 页面时,我可以查看图像。我还可以在 IFRAME 中查看 SVG 文件。但不使用IMG标签。
【问题讨论】:
-
在幕后,浏览器仍将渲染矢量并将其视为带有图像标签的位图,因此适用相同的约束。您的 SVG 的尺寸是多少?您的 SVG 中是否嵌入了 data-uris?
-
在我的例子中,渲染的 SVG 文件的大小是由视口的尺寸决定的。在 iPhone 上,它会是 600x600 之类的东西。在 iPad 上,它更像是 1500x1500。根据我的计算,这些尺寸仍然符合我上面发布的限制。
-
是的,这些尺寸不应该给你带来麻烦,所以你可以放弃它。但是,500 KB 的矢量图像太大了,您是否嵌入了位图图像?
-
我同意 500 KB 很大。没有位图,但它是一个非常复杂的图像。有很多细节,但大部分只有在用户放大时才能看到。
-
这些限制是否仍然适用于更新版本的 iOS Safari?
标签: ios svg mobile-safari