使用rem适配不同屏幕的移动设备

原创 transparent 随笔 前端1946bv1946 2.8k阅读 2017-08-27 21:29:17 举报
rem:是指相对于根元素(即html元素)的字体大小的单位。是CSS3新增的一个相对单位,使用rem为元素设定字体大小时,相对大小对比的是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。
方案一:
先设置header里面的meta标签:
html 代码
在header写上<script>标签
javascript 代码
我们只需要在根元素确定一个参考值,在根元素中设置多大的字体,这完全可以根据您自己的需,大家也可以参考下图: 使用rem适配不同屏幕的移动设备 想用其他参数的,也可以去http://pxtoem.com/这个网站去设置 常用写法:
css:
css 代码
在根元素中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )。从上面的计算结果,我们使用“rem”就像使用“px”一样的方便,而且同时解决了“px”和“em”两者不同之处。
注:在Chrome下,默认最下字体为12px,可以设置font-size: 625%
方案二:
此方案仅适用于移动端web
该方案使用相当简单,把下面这段已压缩过的 原生JS(仅1kb,源码已在文章底部更新,2017/5/3) 放到 HTML 的 head 标签中即可(注:不要手动设置viewport,该方案自动帮你设置) javascript 代码 代码原理
这是阿里团队的高清方案布局代码,所谓高清方案就是根据设备屏幕的DPR(设备像素比,又称DPPX,比如dpr=2时,表示1个CSS像素由4个物理像素点组成) 动态设置 html 的font-size, 同时根据设备DPR调整页面的缩放值,进而达到高清效果
有何优势
引用简单,布局简便
根据设备屏幕的DPR,自动设置最合适的高清缩放。
保证了不同设备下视觉体验的一致性。(老方案是,屏幕越大元素越大;此方案是,屏幕越大,看的越多)
有效解决移动端真实1px问题(这里的1px 是设备屏幕上的物理像素)
如何使用
重要的事情说三遍!
绝不是每个地方都要用rem,rem只适用于固定尺寸!
绝不是每个地方都要用rem,rem只适用于固定尺寸!
绝不是每个地方都要用rem,rem只适用于固定尺寸!

在相当数量的布局情境中(比如底部导航元素平分屏幕宽,大尺寸元素),你必须使用百分比或者flex才能完美布局!
看过 《手机端页面自适应解决方案—rem布局》的朋友,应该对rem有所了解,这里不再赘述,
此方案也是默认 1rem = 100px,所以你布局的时候,完全可以按照设计师给你的效果图写各种尺寸啦。
比如你在效果图上量取的某个按钮元素长 55px, 宽37px ,那你直接可以这样写样式:
css 代码
实践应用源码1(请在手机端或者手机模式下浏览效果更佳!) 实践应用源码2(请在手机端或者手机模式下浏览效果更佳!) 示例源码 著作权归作者所有。部分转载自minooo
链接:http://www.jianshu.com/p/985d26b40199
评论 ( 5 )
最新评论