rem如何适配移动端

浏览器设置rem常用方法

rem,它是相对根元素 html 的 font-size 字体大小来变化的。而浏览器的默认根元素字号是16px,也就是说默认情况下,浏览器的 1rem = 16px。

那么在使用过程中,咱们不可能通过16px来计算,因为那么太麻烦了。比如你要设置一个 div为 25px 的宽度,你得将 25px/16px = 1.5625rem,然后才能正常使用rem。

所以,咱们可以直接更改根元素,让它简单一点。
将根元素的 font-size = 16px,改为 font-size = 10px 或者 font-size = 62.5%,
相当于是 (10px/16px) = 62.5%,这样 1rem = 10px。上述宽度25px的div,就可以写成 25px/10px = 2.5rem,方便了计算。


当然,上述这个可以适用于大部分PC端浏览器,而针对移动端,我们就要采取更精确的计算法方式,请听我一一道来。
在移动端,咱们的根元素可以以最小宽度分辨率的iPhone4/5宽度为基准,也就是 根元素字号大小是12px。
因为当今移动端的分辨率太多了,如果一一去计算,那么太麻烦了。以下是通过JS来实现自动获取并设置。


JS计算并设置根元素的字号

  • 先自动获取当前网页的宽度。
  • 以分辨率宽度为320px作为基准进行 重置 根元素字号。
  • 注意:这段重置代码可以放在 head 下引用,避免页面切换时发生明显抖动。
const oHtml = document.getElementsByTagName('html')[0]
const width = oHtml.clientWidth;
// 320px的屏幕基准像素为12px
oHtml.style.fontSize = 12 * (width / 320) + "px";

例如:
若给定的稿图宽度为:375px(iPhone6/7/8),那么根元素将自动设置: 12*( 375 / 320 ) = 14.0625(px),也就是:1rem = 14.0625(px)
若给定的稿图宽度为:360px(Glaxy5S),那么根元素将自动设置: 12*( 360 / 320 ) = 13.5(px),也就是:1rem = 13.5(px)


通过上述的JS计算可以很方便的解决移动端适配问题,当然,我们这里还可以使用CSS3中的媒体查询来处理。


媒体查询

既然只是为了根据屏幕宽度来设置元素的字体大小,那我们完全也可以通过css3媒体查询来完成这部分工作。

@media screen and (min-width: 375px){
    html {
        font-size: 14.0625px;   
    }
}
@media screen and (min-width: 360px){
    html {
        font-size: 13.5px;
    }
}
@media screen and (min-width: 320px){
    html {
        font-size: 12px;
    }
}
html {
    font-size: 16px;
}

详情可以参考:简单粗暴的移动端适配

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值