元视口标签似乎完全忽略或没有效果
我已经把这个标签放在网页的头部:
<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">
它在许多矿山项目中运行良好。