元视口标签似乎完全忽略或没有效果

我已经把这个标签放在网页的头部:

<meta name="viewport" content="width=device-width,initial-scale=0.47,maximum-scale=1">

出于某种原因,它似乎只是我的iPhone上被忽略,甚至添加user-scalable=no没有影响。 我已经尝试了许多宽度,初始尺寸等值…似乎没有任何效果。

有谁知道可能是什么原因造成的? 在源头上我可以清楚地看到它在标题中。

我的iPhone在iOS7上。

编辑:问题仍然发生在iOS6与Xcode ios模拟器,所以我不认为这是由于iOS7。

这是工作! 在您正在使用的页面上:

 <meta content="width=640, initial-scale=0.47, maximum-scale=1.0, user-scalable=1" name="viewport"> 

当我打开手机上的页面(ios7 iphone5)时,我看到了正确的结果。

你100%确定你真的尝试把下面的代码?

 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> 

它不会被忽略。

UPDATE1

我刚才看到,在你的代码中,似乎你正在使用我的第二个视口,但我得到了改变,可能是JavaScript的640像素的视窗。 这也许就是为什么你觉得它被忽略的原因。 因为在运行期间视口被改变…

UPDATE2

好的发现了这个问题。

 function updateWidth(){ viewport = document.querySelector("meta[name=viewport]"); if (window.orientation == 90 || window.orientation == -90) { viewport.setAttribute('content', 'width=1401, initial-scale=0.34, maximum-scale=1.0, user-scalable=1'); } else { viewport.setAttribute('content', 'width=640, initial-scale=0.47, maximum-scale=1.0, user-scalable=1'); } } 

你的页面正在调用这个覆盖你的视口的函数。 你知道这个function吗?

可能设备中的视口宽度不同。 iOS有320,android有纵向模式360。 风景模式 – 这取决于你有哪个设备,你会得到不同的宽度。

使网站针对移动设备进行优化的最佳方式是设置宽度=设备宽度。 如果您没有设置初始缩放比例= 1.0,则在更改设备旋转时,iOs将放大(放大)屏幕。

这个元素是你所需要的。

 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

如果您想禁用缩放function,请设置user-scalable = no

 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> 

不要硬编码宽度属性,因为它将为纵向和横向模式设置相同的宽度 – 这是非常不愉快的用户体验。

最好logging: https : //developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html

关于iOs 7而且我会说 – 现在不要担心iOS7。 它有这么多的错误。 在这里阅读: http : //www.sencha.com/blog/the-html5-scorecard-the-good-the-bad-and-the-ugly-in-ios7/

我知道这个问题现在已经成为了hella老问题,但是当我遇到这个问题的时候,这是Google的第一个结果,所以我认为我会更新iOS 10。

看来苹果现在完全覆盖了iOS 10中的user-scalable=no ,以提高可访问性

请参阅Thomas Fuchs的“Twitterpost”

看来,ios7不能正确识别meta标签。 这里是可能帮助你的链接。

webapp在iOS 7中不能正确缩放

http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review

作为解决方法,您应该尝试以下代码:

 html { zoom: .8; } 

你不应该担心IOS 7,它有这么多的错误: http : //www.infoworld.com/t/html5/bad-news-ios-7s-html5-full-of-bugs-227685

可能是你的代码是完全没关系,但与iOS的问题?

使用下面的代码。

 <meta name="viewport" content="width=320, initial-scale=1, user-scalable=yes"> 

它在许多矿山项目中运行良好。