移动端rem原理

rem和em一样是个相对单位

em相对与当前元素字体大小

rem的r代表root,相对于根元素字体的大小,网页中根元素是html

一般浏览器html默认字体大小是16px,所以1rem等于16px,2rem等于32px

.box {
    width: 1rem;
    height: 1rem;
    background: red;
}

当设置根元素字体大小为100px时,1rem等于100px

html {
    font-szie: 100px;
}

在移动端设计图一般750px,当移动端宽750px时,设置根元素字体大小100px,这样100px的宽度就就可以写成1rem

因为移动端有各种不同的宽度,我们需要在页面宽度发生变化时动态改变html字体的大小,那么用rem单位作为元素的宽,这个宽度就是响应式的(字体大小变化,这个宽度就会变化)。

比例关系是这样的

 

当前页面宽可以获取等于document.innerWidth

html字体大小 = (100*当前页面宽)/750

这时页面宽度变化,html的字体大小就会变化,1rem的大小也会相应改变

代码:

(function () {
    var doc = document,
        win = window,
        oBody = doc.documentElement || doc.body,
        resize = "onorientationchange" in win ? "orientationchange" : "resize";
    rem();
    addEventListener("resize", rem, false);
    function rem() {
        oBody.style.fontSize = 100 * (doc.body.clientWidth / 750) + "px";
    }
})()

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值