背景图像在iOS上不会显示,但在其他浏览器上显示良好


Background image will not show on iOS, but shows fine on other browsers

我们在Magento网站上有一个背景,根据内容的数量根据需要扩展。它似乎在pc和(希望是mac)上运行良好。但在任何iOS设备上,白色背景都不显示。

我附上了两张截图,一张是它在普通PC浏览器中的样子,另一张是它在iPhone上的样子。

我们的网站如下:http://tinyurl.com/arfpf7g

这是一个直接链接到没有显示在iOS设备上的图像:http://tinyurl.com/bcovmvg

谢谢! !

您有一个名为.box_top的类。里面有一个float: left;我不知道为什么,但试着删除它,并将其替换为溢出:隐藏。至少在FireFox和IE9中是这样。

.box_top {
    background: url("../images/box_top.png") no-repeat scroll center top transparent;
    display: block;
    overflow: hidden;
    width: 1002px;
}

同时,删除边距:0 0 -5px。这会在边框外侧的每个框的底部产生一个小的灰色阴影。

这是iOS 6.0的一个新bug, PNG图像没有保存为"隔行"关闭,不显示,或者有时完全是黑色的。试着保存你的PNG文件,并将"interlacing"设置为"OFF"

这张图片为什么不能在iOS上显示并不神秘,图片的尺寸是978x10000像素(是的是10000)。尽管它在磁盘上只有167 kB,但当扩展到内存中时,它是巨大的。

来自Safari Web内容指南:

解码后的GIF、PNG和TIFF图像的最大尺寸为300万像素对于内存小于256 MB,像素小于500万的设备>>

即对于具有。的设备,确保宽度*高度≤3 * 1024 * 1024小于256 MB RAM。请注意,解码后的大小远远大于图像的编码大小。

除了不能在iOS Safari上显示,你肯定也会在其他浏览器上消耗大量内存。当然,您可以将图像的"顶部"answers"侧面"部分分开,并使用background-repeat来平铺侧面。没有理由让那个东西的"side"部分的高度超过50px。

这不是隔行问题,图像编码没有隔行