一、 流程

设计师以750pt×1334pt尺寸进行设计(当然高度随内容变化),最后用该尺寸的设计稿进行标注、切图,前端采用淘宝的开源方案flexible进行适配。

二、 flexible使用方法

Flexible的使用方法非常简单,只需要引入flexible_css.js和flexible.js 下载地址

l  第一种方法将文件下载后放入项目中引用(省略写法,大家都懂的)

l  第二种直接使用阿里CDN资源

<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js" ></script>

l  第三种直接使用内联的方式将js贴到<head></head>之间(强烈建议)

js执行完成后,会在<html>元素上增加一个data-dpr属性,以及一个font-size样式。Js会根据不容屏幕判断dpr的值(1/2/3),同时给html加上相对应的font-size(例如75px) 。其中dpr是设备的像素比,例如iphone4-6的dpr为2,iphone6p-7p的dpr为3;因为安卓的高清屏太杂乱,flexible未做安卓的高清适配,统一将安卓的dpr设置为1,flexible判断到如果dpr为1且屏幕宽度>540,认定为该手机是安卓高清屏手机,则屏幕宽度恒定设为540px(据统计540px是安卓手机最大的css像素)

到此,我们页面上的元素都可以通过rem单位来设置,他们会根据<html>元素的font-size做相应计算,从而达到不同屏幕的适配。

  • 下面就是如何将px转换成rem:

前面说了,我们是按750px的设计稿进行开发,为了方便换算,flexible将屏幕宽度为750的<html>元素设置font-size为75px,我们将75px称之为rem基准值,针对这份设计稿,我们可以知道 1rem=75px。

这样一来,对于视觉稿上的尺寸换算,只需要将原始px值除以rem基准值,例如视觉稿中179px*150px换算成2.346667rem*2rem。

  • 如何快速换算

在实际生产过程中,每次都要计算px转换rem,肯定会觉得非常麻烦,降低生产效率,为了提高效率,建议大家使用Hbuild或sublime开发工具,这两个工具都有自动转换的插件。

以Hbuild为例,右击项目->属性->代码助手设置->启用项目特定的设置->启动px转rem提示

  • 字号不使用rem

在不同的屏幕下,我们是不希望看到字号也随屏幕缩放,我们希望在小屏上看清文本,在大屏上看到更多的文本,所以字号还是用px单位设置,以及现在绝大多数的字体是点阵字体,通常是16px和24px,所以不希望出现13px、15px这样的奇葩尺寸。

根据flexible的适配方案,dpr=2时<meta name=”viewport”>initial-scale属性为0.5,dpr=3时<meta name=”viewport”>initial-scale属性为0.3333333333

所以的用[data-dpr]属性来区分不同dpr下的文本字号大小

.detail-line-content{font-size: 12px;}

[data-dpr="2"] .detail-line-content{font-size: 24px;}

[data-dpr="3"] .detail-line-content{font-size: 36px;}

三、总结

flexible是淘宝开源的h5适配方案,手机淘宝从14年开始至今一直在使用,比较稳定,并且在开发过程中不要进行复杂的折算,直接使用设计稿中的尺寸,方便好用。该方法是主流的h5前端开发方案之一,这篇文档是我结合大漠老师写的文档和我的一些开发经验,整理了较为简单的流程,如有错误之处,敬请指正。

四、参考资料

http://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html

https://zhuanlan.zhihu.com/p/25422063

h5适配的解决方案的更多相关文章

  1. 本地图片上传与H5适配知识

    最近用到本地图片上传作为API的参数,在网上看了许多,记录一下,以后可能用的着(仅自己记录用,看不清请绕路) function getObjectURL(file) { var url = null ...

  2. 翻屏类 h5 适配方案:解决宽高自适应难题

    表格 图片等 宽度自适应  :width:100%;  box-sizing: border-box; 基于淘宝适配方案flexible + 翻屏h5 适配方案adaptive flexible解读及 ...

  3. 【原】pageResponse - 让H5适配移动设备全家(移动端适配)

    上一篇文章<为什么选择iPhone5的分辨率作为H5视觉稿尺寸>最后留下了问题:是否需要视觉设计师设计多套的视觉稿供给前端工程师做页面适配呢?按照自己以前的方法,通常会要求设计师设计2套的 ...

  4. Chimee - 简单易用的H5视频播放器解决方案

    Chimee是由奇舞团开源的一套H5视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造.Chimee支持MP4.M3U8.FLV等多种媒体格式,同时它也帮我们解决了 ...

  5. 移动端H5适配方法(盒子+图片+文字)

    一.怎么让H5页面适应手机 a.利用meta标签 <meta name="viewport" content="width=device-width,initial ...

  6. 让我为你介绍一个神器:Chimee,一套可扩展的 H5 视频播放器解决方案

    Chimee(读"奇米", [tʃɪ'mɪ:])是由奇舞团开源的一套 H5 视频播放器解决方案,由奇舞团视频云前端团队结合在业务和视频编解码方向的沉淀积累倾心打造. Chimee ...

  7. iPhone X 适配手机端 H5 页面通用解决方案

    一:本文提供两种解决方案 1.终端解决方案(最优,建议选择) 2.web解决方案 导语: iPhone X的出现,一方面对于整个手机行业的发展极具创新领头羊的作用,另一方面也对现有业务的页面适配带来了 ...

  8. EasyNVR H5直播流媒体解决方案前端构建之:如何播放自动适配RTMP/HLS直播播放

    之前在进行EasyNVR多屏开发的时候,由于多屏功能不需要在手机端展示出来(pc多播放为RTMP,手机端播放为HLS),因此只注意到了引用videojs来进行rtmp的播放.由于不同项目需求不同,对h ...

  9. iPhoneX 适配H5页面的解决方案

    由于在iPhonex在状态栏增加了24px的高度,对于通栏banner规范的内容区域会有遮挡情况. 解决方案:在页面通栏banner顶部增加一层高度44px的黑色适配层,整个页面往下挪44px,这种做 ...

随机推荐

  1. 2019年最受欢迎IMX6系列开发板,资料全开源,助力产品研发不在话下

    迅为IMX6开发板: Android4.4系统  Linux + Qt5.7系统  Ubuntu12.04系统 部分真实案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 板载:4G全网 ...

  2. 第十二节,OpenCV学习(一)图像的读取、显示、保存

    一.读取图像 所谓的图像就是一个数组,对图像的处理就是对数字的处理 import cv2 import numpy as np img = cv2.imread('dog.jpg') print(im ...

  3. 编译树莓派2代B型OpenWrt固件实现无线路由器及nodogsplash认证功能

    最终功能: 无线路由器的主要功能,网口WAN接入,USB无线网卡AP热点输出,连上wifi之后跳转到认证页面,点击认证方可上网,有效时间10分钟,认证成功之后自动访问指定网址. 文章结尾有编译好的刷机 ...

  4. 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc (转)

      [原文地址]http://www.cnblogs.com/liqingwen/p/5898368.html 序 本打算过几天简单介绍下组件 Spire.XLS,突然发现园友率先发布了一篇,既然 x ...

  5. m3u8下载转码一次完成

    最近看到有部分网站开始加入视频解析服务,虽然这种服务会损害土豆优酷等视频托管商的权益,但是,烦人的广告也让我们开始寻找有没有什么比较靠谱的解决方法~实际上很多网站都在使用m3u8文件格式,里面都是视频 ...

  6. ogg 单表拆分合并进程

    metalink文档:1320133.1和1512633.1 map scott.emp1, target scott.emp1 ,FILTER(@RANGE(1,3));  --拆分 map sco ...

  7. 安装kafka过程及出现的问题解决

    第一步:下载kafka安装包 下载地址:http://kafka.apache.org/downloads 解压 到/usr/local 目录 tar -zxvf kafka_2.12-2.2.0 第 ...

  8. 烽火2640路由器命令行手册-12-IBM网络配置命令

    IBM网络配置命令 目  录 第1章 DLSW配置命令... 1 1.1 DLSW配置命令... 1 1.1.1 dlsw local-peer 1 1.1.2 dlsw remote-peer 3 ...

  9. Ubuntu18.10下配置PHP7.2 + Apache2 + Mysql5.7

    方案1:集成解决方案 1.lnmphttps://lnmp.org/ 2.xampphttps://www.apachefriends.org/zh_cn/index.html 3.oneinstac ...

  10. Visual studio 2017 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包

    装完win10更新 发现vs杯具了… 提示 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包 可以尝试在vs命令行 ...