移动端单位换算理解

摘要:
在公司上班两年多,对移动端的布局用过两种方法第一种。important");}_self.changePage();window.addEventListener;};UI给的设计稿是按照750*1334的设计稿。对于随屏幕变化的根据rem来设置大小。当页面为750px,其font-size为100px。这个就是一刀切,没有考虑dpr。头部也是这样固定设置。以上方法换算出来的大小就是页面呈现的最终大小。然后再使用将网页缩至设备的100%。layoutviewport的宽度可以通过document.documentElement.clientWidth来获取。

在公司上班两年多,对移动端的布局用过两种方法

第一种。页面顶部引入一个rem.js,代码如下:

new function(){
       var _self = this;
       _self.width = 750;
       _self.fontSize = 100;
       _self.widthProportion = function(){
               var p = (document.body&&document.body.clientWidth||document.getElementsByTagName("html")[0].offsetWidth)/_self.width;

               return p>1?1:p;
           };

       _self.changePage = function(){
           document.getElementsByTagName("html")[0].setAttribute("style","font-size:"+_self.widthProportion()*_self.fontSize+"px !important");
       }

       _self.changePage();
       window.addEventListener("resize",function(){_self.changePage();},false);
}; 

UI给的设计稿是按照750*1334的设计稿。对于随屏幕变化的根据rem来设置大小。当页面为750px,其font-size为100px。这个就是一刀切,没有考虑dpr。头部<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">也是这样固定设置。

以上方法换算出来的大小就是页面呈现的最终大小。因为是没有缩放,100%展示。

第二种方法: 去年开始采用淘宝团队的flexsible方案。此方案跟上个版本比较的话有如下差异:

1、会获取设备的dpr,将layout viewport(网页的css高度和宽度)会是设备大小的dpr倍。然后再使用<meta name="viewport" content="initial-scale=1/dpr, maximum-scale=1/dpr, minimum-scale=1/dpr, user-scalable=no">将网页缩至设备的100%。layout viewport的宽度可以通过 document.documentElement.clientWidth来获取。

2、以上原因解决了ios机1像素过大的问题。

更好的理解flexible请移步 https://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html

免责声明:文章转载自《移动端单位换算理解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇php发送get、post请求的几种方法阴阳师成长录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

移动端页面开发适配 rem布局原理

主题 HTML移动端页面开发适配 rem布局原理 什么是适配,为什么要适配 我们拿到的设计图一般是以640,750,1080分辨率为基准设计的,而现在的手机终端各式各样,分辨率不同,逻辑像素不同 ,适口不同,所以为了让我们的页面在每个设备上都可以良好的展示,那么就需要为这些设备做统一的处理,这个过程就称为移动端适配。 需要知道的一些概念: 物理像素(phy...

移动端适配插件(flexible.js)

;(function(win, lib) { var doc = win.document; var docEl = doc.documentElement; var metaEl = doc.querySelector('meta[name="viewport"]'); var flexibleEl = doc.quer...

移动端1px解决方案

移动端1px解决方案 作者:empty@毛豆前端 前言 移动端web项目越来越多,设计师对于UI的要求也越来越高,比如1px 的边框。在高清屏下,移动端的1px 会很粗。 比如,这个是假的1像素 这个是真的1像素 一、产生原因 那么为什么会产生这个问题呢?主要是跟一个东西有关,DPR(devicePixelRatio) 设备像素比,它是默认缩放为100...

viewport 测试以及总结

这里的总结的主要思想是ppk的文章(文末附有链接),加入了自己的总结,下面的测试用的是iphone5s,android是安卓5.5吋的手机,只是为了直观感受和方便解释拿了空出来的测试机给出的数据。详细具体的数据可以参考ppk的原文章: layout viewport 浏览器默认 layout viewport,宽度可以通过 document.documen...

从淘宝和网易的font-size思考移动端怎样使用rem?

最近翻了一下关于移动端的rem的使用,怎样最方便。在读到流云诸葛的一篇关于《从网易与淘宝的font-size思考前端设计稿与工作流》的文章后,来总结一下。 然而根据我以往做移动端web项目的时候,设计稿一般是640或者750的,我一般会在head里面这样写: <meta name="viewport"content="width=750, user-...

viewport的深入调研

  1、viewport概念:viewport就是设备的屏幕上能用来显示我们的网页的那一块区域. viewport的默认值980px或1024px等,以下是浏览器的默认viewport宽度  2、css中的1px devicePixelRatio = 物理像素 / 独立像素 css中的px是设备的独立像素,分辨率约到,1px代表的物理像素越大,devic...