rem手机端适配方案
2017-03-06 12:37
281 查看
1.页面加入如下代码
页面的宽度超过了640px,那么页面中html的font-size恒为100px,否则,页面中html的font-size的大小为: 100 * (当前页面宽度 / 640) ,一般宽度用百分比或flex,高度rem。
2.
阿里团队的高清方案布局代码,所谓高清方案就是根据设备屏幕的DPR(设备像素比,又称DPPX,比如dpr=2时,表示1个CSS像素由4个物理像素点组成) 动态设置 html 的font-size, 同时根据设备DPR调整页面的缩放值,进而达到高清效果。
参考网址:https://zhuanlan.zhihu.com/p/25552482
示例网址:https://minooo.github.io/Demo/react-study-step-03-demo/index.html#/
3.使用手淘flexible.js
原理也是根据dpr动态的html 的font-size
假如设计稿是750的,Flexible会将视觉稿分成100份(主要为了以后能更好的兼容vh和vw),而每一份被称为一个单位a。同时1rem单位被认定为10a。针对我们这份视觉稿可以计算出:
整个宽度为10rem,<html>对应的font-size为75px:
具体参考文章:http://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html
(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth = docEl.clientWidth; if (!clientWidth) return; if(clientWidth>=640){ docEl.style.fontSize = '100px'; }else{ docEl.style.fontSize = 100 * (clientWidth / 640) + 'px'; } }; if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); doc.addEventListener('DOMContentLoaded', recalc, false); })(document, window);
页面的宽度超过了640px,那么页面中html的font-size恒为100px,否则,页面中html的font-size的大小为: 100 * (当前页面宽度 / 640) ,一般宽度用百分比或flex,高度rem。
2.
<script>!function(e){function t(a){if(i[a])return i[a].exports;var n=i[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=window;t["default"]=i.flex=function(e,t){var a=e||100,n=t||1,r=i.document,o=navigator.userAgent,d=o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i),l=o.match(/U3\/((\d+|\.){5,})/i),c=l&&parseInt(l[1].split(".").join(""),10)>=80,p=navigator.appVersion.match(/(iphone|ipad|ipod)/gi),s=i.devicePixelRatio||1;p||d&&d[1]>534||c||(s=1);var u=1/s,m=r.querySelector('meta[name="viewport"]');m||(m=r.createElement("meta"),m.setAttribute("name","viewport"),r.head.appendChild(m)),m.setAttribute("content","width=device-width,user-scalable=no,initial-scale="+u+",maximum-scale="+u+",minimum-scale="+u),r.documentElement.style.fontSize=a/2*s*n+"px"},e.exports=t["default"]}]); flex(100, 1);</script>
阿里团队的高清方案布局代码,所谓高清方案就是根据设备屏幕的DPR(设备像素比,又称DPPX,比如dpr=2时,表示1个CSS像素由4个物理像素点组成) 动态设置 html 的font-size, 同时根据设备DPR调整页面的缩放值,进而达到高清效果。
参考网址:https://zhuanlan.zhihu.com/p/25552482
示例网址:https://minooo.github.io/Demo/react-study-step-03-demo/index.html#/
3.使用手淘flexible.js
原理也是根据dpr动态的html 的font-size
假如设计稿是750的,Flexible会将视觉稿分成100份(主要为了以后能更好的兼容vh和vw),而每一份被称为一个单位a。同时1rem单位被认定为10a。针对我们这份视觉稿可以计算出:
1a = 7.5px 1rem = 75px
整个宽度为10rem,<html>对应的font-size为75px:
具体参考文章:http://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html
相关文章推荐
- rem适配方案
- (淘宝无限适配)手机端rem布局详解(转载非原创)
- 手机端适配 rem布局
- 手机端使用rem的适配
- 使用Flexible.js实现手机端网页内容适配(rem适配法)
- rem适配方案
- (淘宝无限适配)手机端rem布局详解(转载非原创)
- (淘宝无限适配)手机端rem布局详解
- 移动端适配——rem方案
- 前端新手——适配不同手机端页面的方案,动态查询dpr设置根元素font-size
- 基于REM的移动端响应式适配方案
- 手机端rem布局详解(淘宝无限适配)
- 前端新手——适配不同手机端页面的方案,动态查询dpr设置根元素font-size
- 移动端高清、多屏适配方案——rem
- 手机端rem布局详解(淘宝无限适配)
- (淘宝无限适配)手机端rem布局详解
- 手机端rem如何适配_rem详解及网页自适应
- (淘宝无限适配)手机端rem布局
- 移动端rem适配(手淘flexible方案)
- 基于rem的移动端响应式适配方案(详解)