【发布时间】: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 之前,设备轮换工作正常。在多次方向更改后,布局既不会缩小或缩小,也不会导致浏览器崩溃。
有没有办法解决这个问题?
【问题讨论】:
-
<meta name="viewport" content="width= 640,initial-scale=0.7,minimum-scale=1.0,maximum-scale=1.0" />可以试试告诉我 -
我刚刚在 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