• 使用rem进行自适应页面布局


    设计师给到我们前端的设计稿一般是按照iphone6屏幕(iphone6 两倍屏
    设备
    分辨率(物理尺寸)
    屏幕宽高
    PPI
    状态栏高度
    导航栏高度
    标签栏高度

    iPhone6

    750×1334 px 375×667px 326PPI 40px 88px 98px
    )实际大小给出的标注,我们如何在尽可能多的屏幕上 1:1 的还原设计稿呢?

            如今使用比较多的方式就是rem,(rem是尺寸的单位,相对根节点的字体大小的一个单位)。

            比如设计稿中一个标注宽 30px(iphone6),我们实际写样式时应该为15px(两倍屏会将我们的15px放大为实际的30px,换句话说:把30个像素填充到了15px的宽度里)。

            这样我们对照这iphone6上的设计稿写出的样式在iphone6手机上的表现与设计稿是保持一致的,那么我们怎样让样式在其他手机屏幕上也能保持这个比例去适应呢?

            我们只需要去改变在相应手机屏幕上的根结点的font-size即可,这样页面中的其他不布局仍然会保持与设计稿中的比例显示。

    在实际中,为了方便换算单位,习惯把在iphone6中的根结点font-size大小设置为100px,

    可参考我们服务号中设置根结点大小的方式,如下:

    const winW = (document.documentElement.clientWidth || document.body.clientWidth) / 3.75;
    document.documentElement.style.fontSize = `${winW}px`;
    // 当页面大小发生改变,重新修正rem为新窗口尺寸的3.75分之一
    window.onresize = function resize() {
    let wid = document.documentElement.clientWidth || document.body.clientWidth;
    if (wid > 1024) {
    wid = 1024;
    } else if (wid < 320) {
    wid = 320;
    }
    wid /= 3.75;
    document.documentElement.style.fontSize = `${wid}px`;
  • 相关阅读:
    工作一年感想
    launcher项目踩坑小结(1)
    滕王阁序
    PC端/移动端常见的兼容性问题总结
    Java中逻辑&和短路&&,逻辑|和短路||的区别
    Linux常用指令和系统管理命令总结
    Ajax学习笔记
    js放大镜特效
    《Python for Data Science》笔记之着手于数据
    Python2&3学习中遇到的坑
  • 原文地址:https://www.cnblogs.com/cangqinglang/p/8933657.html
Copyright © 2020-2023  润新知