1、什么是rem?

rem是相对长度单位。相对于根元素(即html元素)font-size计算值的倍数的一个css单位,也就是我们
前端常说的适配单位rem。因为rem的特性相对长度单位,常被用来做移动适配,pc端页面不推荐使用rem。

例如以下代码,渲染效果为: div的宽度为2rem=32px,高度为1rem=16px;

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>html{font-size: 16px;}.box{width: 2rem;height: 1rem;border: 1px solid #f00;}</style>
</head>
<body><div class="box"></div>
</body>
</html>

2、rem的移动适配原理

举个列子:

设计稿宽度:600px

移动设备:600px

设置html的 font-size= 移动设备 / 设计稿宽度 * 100  = 100px,那么 1rem = 100px

设置一个盒子的宽度: width=1rem(即100px),此时这个盒子屏占比为:1/6。

当相同的代码运行在屏幕为300px的设备上时,js动态设置html的 font-size= 移动设备 / 设计稿宽度  * 100  = 50px,渲染出来的盒子就是1rem = 50px,这个盒子屏占比同样为:1/6。以此达到移动适配的效果

可以看出适配的的关键就在于js设置html的font-size:  font-size= 移动设备 / 设计稿宽度  * 100。那么这个公式怎么来的呢?

首先    移动设备 / 设计稿宽度    是渲染效果相对于设计稿的缩放比

然后    移动设备 / 设计稿宽度 * 100   乘以100是为了把font-size(=rem)放大100倍,因为当font-size小于浏览器支持最小字体大小的时候,浏览器会把fon-size默认为最小字体大小。也可以乘以其他值如50,但是为了好计算,一般设置为10或100,这样,我们只需要把设计稿宽度如 width=50px,除以10或100,改为5rem或0.5rem就好了。

3、如何设置html的font-size大小

例如:设计稿为720px;当设备大于720px时,渲染比例1:1,当小于720px时,按照相应的比例缩小

var cw = document.documentElement.clientWidth;
if (cw > 720) { cw = 720;
}
document.getElementsByTagName("html")[0].style.fontSize = 100 * ( cw / 720) + 'px'

有理解不清晰的地方,欢迎留言讨论。。。

rem 工作原理 及 使用介绍相关推荐

  1. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载请注明出处:ARKit从入门到精通(2)-ARKit工作原理及流程介绍 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARKit工作原理 1.3.1-ARSCNView ...

  2. Nginx工作原理及相关介绍

    Nginx工作原理及相关介绍 一.Nginx工作原理与模块介绍 1.Nginx基本工作原理 NGINX以高性能的负载均衡器,缓存,和web服务器闻名.Nginx由内核和模块组成,其中,内核的设计非常微 ...

  3. 内存的工作原理和时序介绍

    内存的工作原理及时序介绍 内存是PC配件中结构最简单的,但在BIOS中却是最难调的,很多玩家超频都卡在内存上.并且,内存的原理.结构与时序多年不会改变,无论将来内存技术如何进步,相信这篇文章的存在价值 ...

  4. 关于协议转换器的分类以及工作原理的详细介绍

    现如今,随着互联网的广泛应用,我们国内的网民也是突破了8.29亿,相信,大家对于网络这块是非常的熟悉了,它是一种虚拟的东西,但是它几乎存在于我们生活的各个角落,在很大程度的让我们的日常生活变得便捷与丰 ...

  5. eja智能压力变送器工作原理_如何理解智能压力变送器工作原理及功能介绍

    如何理解智能压力变送器工作原理及功能介绍 智能压力变送器一般是由传感器.微处理器.存储器及模数.数模转换器组成.传感器用来检测被测量的信号,其所用材料因厂家而异.横河EJA为硅谐振式,把被测参数转换为 ...

  6. ARKit从入门到精通-ARKit工作原理及流程介绍

    2017-06-15 坤小 Cocoa开发者社区 转载请注明出处:http://www.jianshu.com/p/0492c7122d2f 1.1-写在前面的话 1.2-ARKit与SceneKit ...

  7. 什么是网络光端机?网络光端机工作原理及功能介绍!

    网络光端机,就是光信号传输的终端设备.由于目前技术的提高,光纤价格的降低使它在各个领域得到很好的应用.在远程光纤传输中,光缆对信号的传输影响很小,光纤传输系统的传输质量主要取决于光端机的质量,因为光端 ...

  8. 摄像头工作原理及结构介绍(一)

    摄像头是机器视觉系统获取图像的关键部件,摄像头和数码照相机.扫描仪等又被统称为图像传感器,它将被处理目标物体的光形象转换成被称为视频的电信号,将这个信号A/D转换并送到处理器后就可以处理.分析.识别该 ...

  9. 数字音频光端机的工作原理及其应用介绍

    数字音频光端机在通信系统中可以说是应用非常广泛,特别是在安防系统.智能交通监控系统.远程多媒体教学.校园监控.长距离广播电视传输系统.楼宇控制系统等,可以说我们的日常通讯是离不开音频光端机的.接下来就 ...

最新文章

  1. 逆透视变换IPM模型
  2. 一分钟了解 TCP/IP 模型
  3. intellij出现Error assembling JAR: invalid entry size
  4. 云计算岗位40个面试题
  5. python matplotlib设置字体_Matplotlib中修改字体属性
  6. 高级进阶:Azure DevOps搞定.NET Core编译版本号自增
  7. File类、递归、字节流
  8. alert 回调_JavaScript中到底什么时候回调函数Callback
  9. java自定义 filter,HBase自定义Filter
  10. linux 多路径 parted,Ubuntu存储多路径配置
  11. 95-872-040-源码-CEP-CEP简介
  12. vue cli 4 多环境_Vue 笔记整理19
  13. matlab加热模型,基于MATLAB钢丝感应加热模型及其温度场特性的研究
  14. 2022年电子商务概论(农)之形考作业一
  15. matlab chi2gof,chi2gof函数里的检验值P为什么总等于NaN呢
  16. python大数据之缺省值处理
  17. 在Windows 2008中使用winvnc
  18. JSTL 标签大全详解
  19. 三星s5pv210核心板全球最低价199元,尽在保定芯灵思
  20. Documentum常见问题4—如何通过vlink方式直接查看文档内容【转】

热门文章

  1. 前端模块化详解(完整版)
  2. USACO-Mixing Milk
  3. 华为路由与交换 MPLS 协议原理与配置
  4. 老梁带你分析电子火折子的电路原理
  5. 如何打造特色的乡村夜游项目
  6. Hadoop搭建:完全分布式(Linux版本)(一阶段)
  7. 源码0604-12-掌握-webView
  8. win7定位位置服务器,win7 定位 服务器地址
  9. 数据结构与算法(一): 树的高度和深度的区别
  10. 安装vue-cli 4058错误解决办法