在做移动端开发的时候大家肯定会遇到适配问题,手机的屏幕大小有非常多的类别,使用传统的px距离单位已经无法满足我们的需要,于是rem便横空出世,他与百分比定位是比较像的,但是也是有一定的区别,在这里就跟大家分享一下rem的使用方法。

rem是一个相对单位,他的大小是可以根据你的计算来定的,比如说在我的移动端网页中rem与px的换算规则如下:

1rem = 100px

在UI给我的设计稿中是以750px的宽度为标准设计的,于是在我的移动端网页中就以750px为标准规定rem的换算规则,请看以下代码:

(function(doc, win) {
var docEl = doc.documentElement,
resizeEvt = "orientationchange" in window ? "orientationchange" : "resize",
recalc = function() {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
if (clientWidth > 750) {
docEl.style.fontSize = "100px"; // 修正一下大于750的字体大小为100px
} else {
docEl.style.fontSize = 100 * (clientWidth / 750) + "px";
}
/*
* 100 -> html,body { font-size:100px; }
* 750 -> 此处以 iPhone6 两倍设计稿 宽度750px 布局页面
* 根据具体情况改变这两个数值
*/
}; if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener("DOMContentLoaded", recalc, false);
})(document, window);

大致原理就是监听window的resize,当浏览器窗口大小变化时就会触发我设置的函数,重新定义rem的换算规则,这样就可以对不同屏幕大小的距离单位进行适配。

最新文章

  1. 加深一下BlockingQueue的认识
  2. CentOS7上安装QGIS
  3. require、module、exports dojo中的三个特殊模块标识
  4. IIS7配置PHP 报错 "对找不到的文件启用文件监视"
  5. ACM题目————小A的计算器
  6. 装载: Matlab 提取矩阵 某一行 或者 某一列 的方法
  7. 2014 ACM/ICPC Asia Regional Shanghai Online
  8. JavaScript--正则表达式(笔记)
  9. Linux嘚瑟一时的Shared Object
  10. 【iOS开发】collectionView 瀑布流实现
  11. JS 部分常见循环、分支、嵌套练习
  12. Spring Boot Starter 介绍
  13. sublime addons backup
  14. 第七周 ip通信基础回顾
  15. 使用js如何设置、获取盒模型的宽和高
  16. 【SpringBoot】息队列介绍和SpringBoot2.x整合RockketMQ、ActiveMQ
  17. CentOS 7.4编译安装Nginx1.10.3+MySQL5.7.16
  18. [LeetCode] 364. Nested List Weight Sum II_Medium tag:DFS
  19. delphi reintroduce作用
  20. RedHat6.5安装单机flume1.6

热门文章

  1. MapReduce 运行全过程解析
  2. 【原创】原来你竟然是这样的Chrome?!Firefox笑而不语
  3. 对数变换(一些基本的灰度变换函数)基本原理及Python实现
  4. git的使用学习笔记
  5. Viper-Go一站式配置管理工具
  6. netty源码解解析(4.0)-17 ChannelHandler: IdleStateHandler实现
  7. 阿里云短信服务(JAVA)
  8. java120经典面试题
  9. DRF (Django REST framework) 中的Request 与 Response
  10. 基于CAS分析对ABA问题的一点思考