对于我的移动Web应用程序,我试图获取设备的屏幕宽度以动态调整视图。
我真的很困惑为什么摩托罗拉Atrix Atrix MB860报告宽度为800px。当我看到这个设备的规格时,它的分辨率是540x960。为什么在javascript中报告800px?我用过这个测试页面: http://www.quirksmode.org/m/tests/widthtest.html
我在几个设备上测试了上面的页面,除了摩托罗拉atrix之外,它们都正确地报告了宽度。例如,galaxy s2报告480px,nexus 7报告1280px
答案 0 :(得分:2)
这是Android 2.3的奇怪行为。我在这里找到了:http://tripleodeon.com/2011/12/first-understand-your-screen
然而,在常规浏览器场景中,Android v2.3显示出更加奇怪的行为。它的screen.width始终以800开始 - 这显然是某种虚拟视口,而不是物理屏幕。但是当文档具有XHTML-MP doctype或受约束的视口(对于任何doctype)时,该值将在文档加载事件发生时切换为您可能期望的320或480。
window.outerWidth应该设置技巧或将视口宽度设置为设备宽度
<meta name="viewport" content="width=device-width, user-scalable=no" />