移动开发的分辨率问题

   这两天在做移动开发的准备,比较纠结于分辨率问题:iphone3的分辨率是320 X 480,iphone4直接翻了一倍640 X 960,而ipad1、ipad2的分辨率都是1024 X 768。如果做native的开发,那么也就只面对这几个问题就罢了,但浏览器又多了个view port的概念,不论iphone3、iphone4还是ipad在浏览器里默认的view port都是980 * x , x根据ipone还是ipad决定,我们开发一个网页的时候,可以直接使用默认的980 view port,也可以自己显式地定义一个view port。view port事实上应该是在手机分辨率和浏览器显示分辨率之间利用dpi做了一个缩放,而这个缩放的比例应该是手机浏览器自动帮我们做的。

  为了让iphone和ipad上兼容,且最大利用屏幕分辨率,在不考虑“添加至主屏”从而使浏览器激活全屏功能的情况下,地址栏和状态栏是个不得不考虑的因素。地址栏可以通过让内容超过一屏,同时调用window.scroll(0,0)来隐藏掉,但状态栏和手机顶部的“信号、时间、电池”的那个栏是无法隐藏掉的。

   也就是说,屏幕最大能用的尺寸如下所示:
  

为了防止用户缩放屏幕,我加了<meta content="user-scalable=0;" name="viewport"> 这一句,这样浏览器的分辨率就可以锁定了。屏幕横过来最大可用的分辨率尺寸是980*545,而这个分辨率在ipad下height稍低了一点,ipad下还有空余,但并不大。木桶原理,就低不就高,所以屏幕尺寸先初步定在980*545了。

代码贴一下:

<!doctype html>

<html>

<head>

<title>test for iphone</title>

<meta charset="utf-8">

<meta content="user-scalable=0;" name="viewport"> 

<meta content="yes" name="apple-mobile-web-app-capable">

<style type="text/css">

html,body{margin:0;padding:0;height:100%;background:#000;}

#wrap{980px;height:545px;overflow:hidden;background:#999;margin:0 auto;}

</style>

</head>

<body>

<div id="wrap">

<img src="a.jpg">

<img src="b.jpg">

</div>

<script type="text/javascript">

window.addEventListener("load",function(){

setTimeout(function(){

  window.scrollTo(0,0);

},0);

});

window.addEventListener("orientationchange",function(){

window.scrollTo(0,0);

},false);

</script>

</body>

</html>


 

原文地址:https://www.cnblogs.com/cly84920/p/4426579.html