博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
REM——适合移动开发的自适应方案
阅读量:6570 次
发布时间:2019-06-24

本文共 1040 字,大约阅读时间需要 3 分钟。

文章目录


1.什么是REM

先来认识几个常见单位:

  • px:像素,这个大家都知道。
  • vh:viewport height,视窗高度,是指占整个浏览视窗高度的百分数。
  • vw:viewport width,视窗宽度,是指占整个浏览视窗宽度的百分数。
  • em:一个大写字母M的宽度(有时候也说一个汉字的宽度,但其实是错的),多少em是指大写字母M的宽度的倍数

而rem(Root em) ,理解过来是指根元素(<html>标签)中的font-size,虽然rem中有em但是这里两个单位没有任何关系,这里需要特别注意。

举个例子,chrome默认字体大小为16px,如果不设置html{font-size:XXpx},所以在这时1rem就是16px

2.REM和EM的区别

首先两者什么关系都没有!

em是指自身的font-size的倍数,这里举个例子

html {
font-size:16px;}p {
font-size:12px; height:2em; /*2 x 12 = 24px*/ width:2rem; /*2 x 16 = 32px*/}

3.手机端方案的特点

由于分辨率不统一,不同品牌不同设备的屏幕显示比例不同,移动端开发需要做适配的话只能使用等比例放大缩小来进行(这里不考虑响应式,只是在接近的分辨率中进行比较)。

4.使用JS动态调整REM

如果想通过缩放来显示内容,就必须与显示的宽度(innerWidth)有关系。但是像上面的说的,这几个单位除了vw之外都和显示宽度没有关系。然而,vd目前浏览器兼容性很差,别说手机,就是电脑浏览器都有些不兼容。因此,就有人想出使用JS来获取显示宽度进行设 置。只需要在html页面中,加载css文件之前添加以下代码

在此之后可以利用1rem=innerWidth来进行布局,这个时候1rem=100vd。如果觉得小数太小了写着不方便也可以取font-size=={doucment.innerWidth/10},注意,这里不要用100的,因为有的浏览器会设置最小字体,比如chrome浏览器默认最小为12px,当设置小于这个值的时候会不生效

5.REM与其他单位同时存在

当使用rem的时候不影响其他的单位使用,有时候考虑到以rem为单位的换算成px可能不到一像素,这个时候还是使用px为单位。

转载于:https://www.cnblogs.com/YooHoeh/p/10659694.html

你可能感兴趣的文章
Leetcode题目:Palindrome Linked List
查看>>
字节跳动2018校招测试开发方向(第二批)
查看>>
C++:关于初始化C++类成员的一些问题
查看>>
使用jQuery封装实用函数
查看>>
导出excel
查看>>
字符串拼接 + 和 join
查看>>
盒模型
查看>>
Luogu P3168 [CQOI2015]任务查询系统
查看>>
spring入门
查看>>
a标签,img标签,表格
查看>>
Appium Server 传递Android参数
查看>>
阅读计划
查看>>
【Spark篇】---Spark中控制算子
查看>>
cookie的使用
查看>>
Android系统执行Java jar程序 -- dalvik运行dex Java工程
查看>>
SQL多表查询,消除表中的重复的内容
查看>>
分享几个下载豆瓣资源的chrome插件
查看>>
JAVA 时间转换、获取
查看>>
vue的项目
查看>>
自动化测试基础篇--Selenium中JS处理浏览器弹窗
查看>>