【问题标题】:iOS 8.3 - Meta viewport initial scale under 1.0 results in weird content scaling on orientation changeiOS 8.3 - 元视口初始比例低于 1.0 会导致在方向更改时出现奇怪的内容缩放
【发布时间】:2015-06-18 12:35:31
【问题描述】:

将我的 iOS 设备升级到 iOS 8.3 后,我注意到元视口初始缩放属性出现了一些奇怪的行为。如果我将初始比例设置为 1.0 以下并在浏览网页时旋转我的设备,整个内容将逐渐变小,最终浏览器会崩溃。

我注意到,随着每次方向变化,内容会缩小多少,这与您设置的初始比例有关。例如,如果我将其设置为 0.9,则内容每次都会缩小 10%。如果我将其设置为 0.6,则内容每次都会缩小 40%。

由于这个 bug 的性质,它不能在 jsfiddle 上放置或体验。相反,我会将代码粘贴到此处,以便您可以自己在某个地方进行测试:

<!doctype html>
<html>
    <head>
        <title>initial scale under 1.0</title>
        <meta name="viewport" content="width=device-width, initial-scale=0.7, user-scalable=0" />
    </head>
    <body>
        <div id = "wrapper">
            <h1>Hello, run this page on iOS 8.3 device and change the orientation multiple times to make this text go smaller and eventually crash the browser!</h1>
        </div>
    </body>
</html>

您可以将这个损坏的示例与一个有效的示例进行比较,该示例的初始比例设置为 1.0:

<!doctype html>
<html>
    <head>
        <title>initial scale 1.0</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0" />
    </head>
    <body>
        <div id = "wrapper">
            <h1>This text will not get smaller nor will the browser crash when you rotate your device multiple times!</h1>
        </div>
    </body>
</html>

在升级到 iOS 8.3 之前,设备轮换工作正常。在多次方向更改后,布局既不会缩小或缩小,也不会导致浏览器崩溃。

有没有办法解决这个问题?

【问题讨论】:

  • &lt;meta name="viewport" content="width= 640,initial-scale=0.7,minimum-scale=1.0,maximum-scale=1.0" /&gt; 可以试试告诉我
  • 我刚刚在 iOS 8.3 Safari (iPhone 6+) 中检查了代码;没问题 - 改变方向 50 次。你用的是什么设备?正如@Duraiamuthan.H 建议的那样,添加最大和最小比例(我会说不是 0.7,所以比例不会从 0.7 改变)。我对这个问题的猜测是,iOS 渲染每次都试图获得当前比例的 60%。对我来说听起来像是一个非常奇怪的错误。尝试关闭 Safari 并重新打开它。如果这不能解决问题,请向 Apple 报告错误(或者您的 iOS 安装损坏)
  • @Piwwoli - 这对我来说似乎也是错误。因为问题发生在你的特定版本中。我无法重现它,你也无法在你的 8.3 中重现这个问题所以我们可以假设苹果已经为此发布了一个补丁。
  • @Duraiamuthan.H 我无法再用我给出的示例重现该错误。但是,我制作的其他一些网站仍然会发生这种情况,它们具有相同的元视口标签。我注意到与此问题相关的新事物:如果我在某个站点中重现了仍然以某种方式重现它的错误,然后导航到其他页面(例如 Google),则与哪个站点无关 - 比例保持不变,我导航到的站点是也以一种奇怪的方式缩小了。刷新后有时会得到修复,有时我需要重新启动 Safari。哦,我在 8.3 iPad 和 8.3 iPhone 上遇到了同样的错误

标签: html ios mobile web viewport


【解决方案1】:

在最新的 iOS 8.3 中,您无法在您的某个网站中重现该错误 但是您仍然可以在其他一些网站中重现该错误。

来自您正在使用 jQuerymobile 的 cmets。

某些版本的 jQuery mobile 可能与某些版本的 iOS Safari不兼容。

我们不能完全排除在某些版本中safari viewport scaling 中可能存在的错误。但我们能做的就是解决问题。

这是处理缩放问题的workaround之一。

这是 jQuery 论坛中的一个错误 topic

这里有一个详细的article@关于如何解决 iPhone 视口缩放错误。

在您的 站点 中拥有 最新的 jqueryMobile 总是明智的,因为它可能 会有 jQueryMobile 在较新版本的浏览器。

希望这会有所帮助。

如有任何疑问,请随时发表评论。

【讨论】:

  • 我还无法让解决方法起作用,但这似乎是我问题的最可能原因。谢谢!
  • @Piwwoli - 很高兴它对你有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多