iPad Safari 在将 jpg 渲染为背景图像时遇到问题?

Posted

技术标签:

【中文标题】iPad Safari 在将 jpg 渲染为背景图像时遇到问题?【英文标题】:iPad's Safari have problems on rendering jpg as background-image? 【发布时间】:2012-09-11 08:07:59 【问题描述】:

这是我的代码:

html

<div class="sfondo-interne-8601">
    <div style="height:1200px; width:900px;">
        Test
    </div>
</div>

CSS

.sfondo-interne-8601

    background-image:url('http://www.deviantart.com/download/247331565/moonlit_tears_by_lifesequencebreak-d439699.png') !important;   
    background-repeat:no-repeat;
    background-position:center top;
 

好吧,尝试创建一个页面并在 iPad 上进行测试:效果很好(图片为 png)。

现在,尝试用 jpg 更改图像(我已经为您选择了一个 here)。您会注意到新图像将被调整大小(不确定哪些规则)并居中于整个 html 文档的中心/顶部。

为什么?我该如何解决? ipad有什么限制吗?

只是注意到,如果我使用低于 1150 像素(作为高度)的 .jpg,它也可以正常工作。 Safari 的错误?

【问题讨论】:

【参考方案1】:

ios 上,jpeg images of over 2MP get subsampled(查看“资源限制”),有效地改变了图像的尺寸。

我推测如果 CSS background-size 设置为 containcover,这不会如此明显(它仍然会发生,但由于纵横比不会受到影响并且背景大小算法仍然会是运行)

如果您希望二次采样的背景图像保持其原始尺寸渲染,您可以添加background-size: 1920px 1200px:before 和after。

【讨论】:

超过 2MP?这还没有超过 2MP!那个 jpeg 是 389,37kB。事实上,以 30% 的质量保存 jpeg 1900x1200 我遇到了同样的问题......所以这是一个维度的痛苦!设置 :cover 似乎有效。希望它不会伤害 IE :) @markzzz:389.37KB file 大小无关紧要,因为 image 大小超过 2MP:1900px * 1200px = 2280000px = 2.28MP跨度> 我还注意到,如果我调整浏览器的大小,背景大小会“改变”图像的大小。该死的…… @markzzz:这是那些特定值的期望行为(出于某种原因,我假设你在他们之后ಠ_ಠ)。您应该忽略它们,而是查看mdn docos on image resizing 嗯!不!我想要的是图像在浏览器中居中,而不是调整大小。所以我认为我必须避免背景大小。还有其他解决方案吗?

以上是关于iPad Safari 在将 jpg 渲染为背景图像时遇到问题?的主要内容,如果未能解决你的问题,请参考以下文章

CSS 背景位置在 Mobile Safari (iPhone/iPad) 中不起作用

ipad上的背景音频不会停止

iPad Safari - 文本选择事件

背景图像在 Safari 和 iOS 中未显示全宽

iPad 和 iPad 2 渲染 CSS 不同?

为啥 iPad 不能渲染“离线”情节而 iPhone 可以?