rem自适应移动端布局

2 篇文章 0 订阅

rem自适应移动端布局

rem自适应布局得牛逼之处就是,在一个移动端分辨率上布局好了以后,能够适应所有移动端布局。一开始我觉得这个东西很难搞,我们以视觉稿为640px的宽来举例子,把640px分为100份,每一份称为一个单位a,那么每个a就是6.4px,而1rem单位被认定为10a,此时,1rem=1(a)X10X6.4(px)即64px。

640px/100=6.4px                              1个单位a为6.4px
1rem = 10a                                   1rem单位被认定为10a
1rem = 1(a)*10*6.4(px) = 64px

因此,对于视觉稿上的元素的尺寸换算,只需要原始px值除以rem基准px值(此例子中为64px)即可。
例如240px * 120px的元素,最后转换为3.75rem * 1.875rem。

我觉得上面这个做法很麻烦,虽然编辑器有rem自动转换的插件,但是感觉还是不好,然后我就在想,如果rem和px的转换是一个直观的十倍这么转,那么就方便多了,1rem=10px。

提出这个想法以后,我就去找资料了,结果网上资料让人乱花渐欲迷人眼。于是只能救助技术群大佬了,最终是解决了,引入了一段js,大佬说是网易的一个项目里面的,我现在张贴一下。

!function(){
    function t(t,e,n){
        var i,r,o=document.querySelector('meta[name="viewport"]'),a=document.documentElement.clientWidth;
        switch(t){
            case"fixed":i=e,r=a/e;break;
            case"rem":var s=window.devicePixelRatio||1;i=a*s,r=1/s,document.documentElement.style.fontSize=100*(a*s/e)+"px"}o.setAttribute("content","width="+i+",initial-scale="+r+",maximum-scale="+r+",minimum-scale="+r),n&&window.addEventListener("DOMContentLoaded",function(){document.body.style.fontSize=50/r+"px"})}t("fixed",375)}();

ok,上面那个小括号里面有个375px,这是我自己再375px屏幕里面布局的,这个主要是根据设计图纸上移动端布局的宽度来,可自动更改。

引入上述代码了以后还是没用,这时候还得设计html的font-size为62.5%。

html{
    width: 100%;
    height: 100%;
    overflow: hidden;
    font-size: 62.5%;
}

然后你就可以再你的页面布局了,可以直接px,可以自适应所有移动端,因为上面那个js的作用就是这样,我当时不知道,我直接用的rem,效果是一样的,1rem=10px。比如你要设置你的margin,你想设置为10px,那么你可以使用10px,如果你想使用rem,那么就是1rem了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值