移动端自适应与rem

提到移动端适配,小伙伴们都会想到rem布局,那么rem是什么呢?我们有为什么要使用rem呢?下面我们就来讨论一下。

什么是rem?

rem是相对于根元素(也就是<html></html)的字体大小的单位,也就是说它的大小会随着html的变化而变化。

rem与em有什么关系?

说到rem又不免想到em。那么他们之间有什么血缘关系吗?是的,他们可能是兄弟、父子,也可能是爷孙关系。它们之间的区别在于,rem依赖于根元素<html>,而em是依赖于父元素。

为什么rem要用在移动端?

为什么要在移动端使用rem呢?pc端就不行吗?答案当然是肯定的,但由于某些浏览器(如IE浏览器)对rem的兼容性,尽量还是不要在pc端使用rem。

rem的使用场景与使用方法:

最普遍的用法莫过于根据设计图的宽度来设置:

  document.querySelector('html').style.fontSize =

    document.querySelector('html').clientWidth / 750* 100 + 'px';

  window.onresize = function () {

    document.querySelector('html').style.fontSize =

      document.querySelector('html').clientWidth / 750 * 100 + 'px';

  }

rem可以做到一些百分比流式布局难以完成的效果,如类似于bootstrap等主流ui框架的栅格系统。我们完全可以通过下面这段js代码模拟出栅格效果:

document.querySelector('html').style.fontSize =
    document.querySelector('html').clientWidth / 12 + 'px';

window.onresize = function () {

document.querySelector('html').style.fontSize =
        document.querySelector('html').clientWidth / 12 + 'px'

}

这样就把html的fontsize设置为整屏宽度的十二分之一,也就是说整屏宽度等于12rem,平常用百分比做不到的效果我们就可以轻松搞定。如:把屏幕分成3等份。

再比如下面这种情况:

我们想要img的宽高比例固定,用百分比显然是做不到的。我们能要求用户上传图片的时候把图片的比例固定吗?显然不现实。这个时候用rem来设置它的宽高就可以轻而易举的解决这个问题了。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值