美文网首页
动态rem方案等比例缩放手机页面

动态rem方案等比例缩放手机页面

作者: 李悦之 | 来源:发表于2017-05-21 16:05 被阅读49次

这篇文章主要梳理阿里的动态rem方案。

需求:

在做手机页面的时候,经常会遇到一个问题,那就是随着智能手机的发展,各个屏幕尺寸的手机层出不穷,从宽度300px到420px的都有,当我们想要适配各种屏幕尺寸的手机时,一般来说会用媒体查询的方法,根据不同的尺寸单独写相应的CSS代码,这种方法虽然也能够实现适配的问题,但是针对每一个尺寸都要单独写对应代码,过于烦琐,因此就有了rem方案。

动态rem方案的基本思路:

rem方案就是页面所有元素的宽高、距离等等都用rem单位来表示,rem又和手机屏幕尺寸绑定,在不同的手机上,用一段JS代码来获取屏幕宽度,然后将rem以此为基准设置,然后相应元素的所有宽高距离等等都换算成rem单位。

var screenWidth = window.screen.width

这一行代码放在style标签上面script里,用于动态获取不同手机的具体宽度。

var css = `
      html{
        font-size:${screenWidth}px;
      }
    `

声明一个CSS,将1rem设置为屏幕宽度。

document.write(`<style>${css}</style>`)

在当前位置插入html的font-size,即1rem=屏幕宽度。接下来将页面当中所有元素的宽高距离等都改成rem单位即可。

**重新再理一下思路:先用JS获取当前屏幕宽度 > 把html的font-size也就是1rem设置成当前屏幕宽度 > 将页面所有的元素按照当前屏幕尺寸修改成rem单位 **

这样,因为屏幕宽度是用JS动态获取的,而元素的具体宽高距离等等都是基于屏幕宽度的,那么随着屏幕宽度的变化,页面内所有的元素都会进行相应的缩放。

有一个地方需要好好注意,那就是font-size问题,在谷歌浏览器里是有一个最小值的,如果设置的值小于这个最小值,那么浏览器会用最小值来覆盖,就会出bug,这里需要特别注意。

相关文章

网友评论

      本文标题:动态rem方案等比例缩放手机页面

      本文链接:https://www.haomeiwen.com/subject/vqvmxxtx.html