我正在尝试了解documentElement.clientWidth
和window.innerWidth
及其在各种设备上的行为。我使用此http://67.20.67.232/test.html页面进行测试,令我感到困惑的是,在我的Nexus 6 documentElement.clientWidth
上是980,我尝试使用开发工具的移动模拟,结果相同。那为什么980呢?而且,在移动设备上,window.innerWidth
可以视为视口宽度吗?该页面的HTML如下:
<html>
<head>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
(function loop(){
requestAnimationFrame(function(){
$('#doc').html( document.documentElement.clientWidth );
$('#win').html( window.innerWidth );
$('#d1').html($('#w div:eq(0)').width());
$('#d2').html($('#w div:eq(2)').width());
loop();
})
})();
</script>
</head>
<body>
<div id="w" style="margin-top:50px;margin-left:50px;font-size:50px">
<div style="float:left">client:<span id="doc"></span></div>
<div style="clear:both"></div>
<div style="float:left">window:<span id="win"></span></div>
<div style="clear:both"></div>
<div id="d1"></div>
<div id="d2"></div>
</div>
</body>
</html>
答案 0 :(得分:3)
在head部分中包含viewport元标记:
<meta name="viewport" content="width=device-width, initial-scale=1">
http://developer.mozilla.org/en/docs/Mozilla/Mobile/Viewport_meta_tag
否则大多数移动设备都会认为它是一个桌面版网站,并模拟一个通常为980像素的较大视口。
答案 1 :(得分:0)