web移动端常用解决方案:

一、通过js+rem,这里有一个解决方案(http://imochen.github.io/hotcss/)

1.1、rem兼容性(https://caniuse.com)

ios:6.1系统以上

android:2.1系统以上

1.2、什么是rem的

rem其实就是根据网页的根元素来设置字体大小,和em(font size of the element)的区别是,em是根据其父元素的字体大小来设置。现在大部分浏览器默认font-size:16px。如果一个p标签想要设置font-size为12px,用rem作单位则变成了font-size:0.75rem(12/16=0.75)。根据这个原理,将rem运用到布局,则可以实现不同分辨率的适配。

1.3、rem基准值计算

实际开发中,我们不可能将默认font-size大小作为基准值,这个基准值应该是是根据ui设计稿获取的。如果ui以iphone6(375px)的分辨率为设计基准,设计图的分辨率就为750px(dpr为2),那么我们可以以375/10=37.5为基准(也可以不除已10,这里只是为了不让font-size值太大)。

1.4、动态计算font-size的值

方法一、利用css媒体查询

@media (min-device-width : 375px) and (max-device-width : 667px) and (-webkit-min-device-pixel-ratio : 2) {

      html {
    font-size: 37.5px;
  }
}
方法二、js计算
document.getElementsByTagName('html')[0].style.fontSize = window.innerWidth / 10 + 'px';
 
1.5、rem适配进阶
当ui使用ipone6(375px)作为设计基准,完成的设计图分辨率双倍的原因是iphone6属于高清屏,设备像素比(device pixel ratio)dpr为2。
通过js的window.devicePixelRatio(这个方法在安卓上可能不准确)获取到当前设备的dpr,拿到了dpr之后就可以在viewport meta头里,取消让浏览器自动缩放页面,而自己去设置viewport的content
meta.setAttribute('content', 'initial-scale=' + 1/dpr + ', maximum-scale=' + 1/dpr + ', minimum-scale=' + 1/dpr + ', user-scalable=no');
 
这样一来在开发时就可以设置font-size为设计图大小,这里iphone6设计图font-size就为75px,而且还解决了图片高清问题和1像素边框的问题
 

       

二、淘宝flexible方案(https://github.com/amfe/article/issues/17)。

												

web移动端适配方案的更多相关文章

  1. rem移动端适配方案

    一. rem vs em 单位 定义 特点 rem font size of the root element 以根元素字体大小为基准 em font size of the element 以父元素 ...

  2. H5 APP 页面移动端适配方案

    H5 APP 页面移动端适配方案 https://segmentfault.com/a/1190000011586301 https://juejin.im/post/5cbdee71f265da03 ...

  3. 基于Vue/React项目的移动端适配方案

    本文的目标是通过下文介绍的适配方案,使用vue或react开发移动端及H5的时候,不需要再关心移动设备的大小,只需要按照固定设计稿的px值布局,提升开发效率. 下文给出了本人分别使用create-re ...

  4. Web移动端适配总结

    移动端适配的相关概念以及几种方案总结 适配相关概念 布局视口(layout viewport):html元素的上一级容器即顶级容器,用于解决页面在手机上显示的问题.大部分移动设备都将这个视口分辨率设置 ...

  5. 移动端适配方案-rem(基础篇)

    常见移动web适配方案一般有3种方法,如下图: ①:定高,宽度百分比(一般用来做一些适配性不高的页面,比如主要以一些文字和图片为主的网页或移动端的头部和底部) ②:flex (更多的用于复杂页面的布局 ...

  6. 移动端适配方案 flexible.js

    前言 移动端适配一直以来都是前端开发中不可或缺的重要组成部分,如果没有了它,那么你做出来的页面极有可能会出现各种意外(写出来的页面与设计稿之间的差别).所有我们得找到一种相对来说让人比较满意的解决方案 ...

  7. 手淘H5移动端适配方案flexible源码分析

    移动端适配一直是一个值得探讨的问题,在业余时间我找了一些页面,查看了一些厂商对于移动端H5页面的适配方案,看到了几个典型的例子,今天就来记录一下我看到的第一个典型的例子,也是我们公司目前普通H5项目正 ...

  8. 整理h5移动端适配方案

    <使用Flexible实现手淘H5页面的终端适配>:https://github.com/amfe/article/issues/17 <再聊移动端页面的适配>:https:/ ...

  9. 【前端适配】vw单位移动端适配方案

    近些年移动端的强势崛起,导致移动端适配越来越重要,个人之前一直使用的是rem进行适配,但是发现并不是非常完美,给力的是大漠老师写了一篇<如何在Vue项目中使用vw实现移动端适配>,比较完美 ...

随机推荐

  1. C++:输入n个数,通过气泡法从小到大排列顺序(掌握不熟,还请谅解)

    #include<iostream> using namespace std; int main() { int n; cin>>n; int a[n]; int i,j,t; ...

  2. VBA计算器的全部实现

    我们将加入 除零逻辑 和 对话框提示. 后面 就很简单了~~~ 提供效果图跟 代码 代码示例 Sub 矩形1_Click() ' ' 矩形1_Click Macro ' 代码编辑 Dim number ...

  3. win10安装Tensorflow1.9GPU版本

    前言 看到DateWhale出了一篇安装教程(微信公众号DateWhale),决定体验一下Tensorflow1.9的GPU版本..其实一开始装的是2.0,但是tf.Session()就报错了,说是2 ...

  4. 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

    ubuntu更新软件时 apt-get upgrade 遇到 E: 无法获得锁 /: 资源暂时不可用) E: Unable to acquire the dpkg frontend lock (/va ...

  5. mysql 登录和退出 和简单得操作命令

    {} 是必须要有得,[]是可有,可没有得... SHOW WARNINGS (查看警告信息) SHOW CREATE DATABASE T1; (查看数据得创建sql语句)

  6. urllib库认证,代理,cookie

    认证,代理,cookie 1from urllib.request import HTTPBasicAuthHandler, HTTPPasswordMgrWithDefaultRealm, buil ...

  7. select count(*) 底层到底干了啥?

    作者:贾春生,http://dwz.win/myg SELECT COUNT( * ) FROM TABLE 是个再常见不过的 SQL 需求了. 在 MySQL 的使用规范中,我们一般使用事务引擎 I ...

  8. W同学的新画板 QDUOJ 线段树 区间颜色段数

    W同学的新画板 QDUOJ 线段树 区间颜色段数 原题链接 题意 W同学在每天的刻苦学习完成功课之余,都会去找一些有趣的事情来放松自己:恰巧今天他收到了朋友送给他的一套画板,于是他立刻拆开了包装,拿出 ...

  9. Luogu P1315 [NOIP2012]观光公交

    题目 每次把加速器用在可以是答案减少最多的地方就即可.(这不是废话吗?) 具体而言,我们处理出: \(sum_i\)到\(i\)为止下车人数之和. \(t_i\)在\(i\)最晚的上车的人的上车时间. ...

  10. NOIP赛前集训备忘录(含每日总结)(日更?。。。)

    NOIP赛前集训备忘录(含每日考试总结) 标签: 有用的东西~(≧▽≦)/~啦啦啦 阅读体验:https://zybuluo.com/Junlier/note/1279194 考试每日总结(这个东西是 ...