• 移动开发的分辨率问题


       这两天在做移动开发的准备,比较纠结于分辨率问题: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>


     

  • 相关阅读:
    AJAX
    Aliyun服务器配置Redis
    Aliyun服务器配置MySQL
    Python基础之迭代器详解
    Python基础之函数
    Flask入门--URL
    认识Web
    肖知兴:企业的底层逻辑与企业家的突破(下)
    建造者模式(Bulider模式)详解
    为什么我强烈推荐你用枚举来实现单例模式
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426579.html
Copyright © 2020-2023  润新知