• 小tips:使用rem+vw实现简单的移动端适配


    首先设置meta属性,如下代码:

    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

    使用如下代码就能实现移动端的适配:

    html {
      font-size: -webkit-calc(13.33333333vw);
      font-size: calc(13.33333333vw);
    }

    100vw相当于浏览器的window.innerWidth,是浏览器的内部宽度,注意,滚动条宽度也计算在内那么1vw就是表示1%的屏幕宽度。

    其中的13.33333333vw是怎么来的呢?就是你的设计稿是750px,那么设计稿的1px就是0.133333333vw,那么100px就是13.33333333vw。也即是html的font-size设置为100px相当于1rem(设计稿为750px)。那么我们就可以很轻松的换算设计稿中的单位为rem了,比如一个元素宽度为150px,转换为rem就是1.5rem。其他尺寸设计稿的计算方式依次类推。

    参考网易新闻移动端的写法:

    /**
     * view-port list:
    320x480
    320x568
    320x570
    360x592
    360x598
    360x604
    360x640
    360x720
    375x667
    375x812
    393x699
    412x732
    414x736
    480x854
    540x960
    640x360
    720x1184
    720x1280
    800x600
    1024x768
    1080x1812
    1080x1920
     */
    html {
      font-size: -webkit-calc(13.33333333vw);
      font-size: calc(13.33333333vw);
    }
    @media screen and (max- 320px) {
      html {
        font-size: 42.667px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 321px) and (max- 360px) {
      html {
        font-size: 48px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 361px) and (max- 375px) {
      html {
        font-size: 50px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 376px) and (max- 393px) {
      html {
        font-size: 52.4px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 394px) and (max- 412px) {
      html {
        font-size: 54.93px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 413px) and (max- 414px) {
      html {
        font-size: 55.2px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 415px) and (max- 480px) {
      html {
        font-size: 64px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 481px) and (max- 540px) {
      html {
        font-size: 72px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 541px) and (max- 640px) {
      html {
        font-size: 85.33px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 641px) and (max- 720px) {
      html {
        font-size: 96px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 721px) and (max- 768px) {
      html {
        font-size: 102.4px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    @media screen and (min- 769px) {
      html {
        font-size: 102.4px;
        font-size: -webkit-calc(13.33333333vw);
        font-size: calc(13.33333333vw);
      }
    }
    body {
      font-family: "PingFangSC-Regular", "Microsoft YaHei", Helvetica;
      color: #333333;
      background: #f5f7f9;
    }
    html a {
      color: #333333;
    }

    这样写法也是为了兼容老版本手机不支持vw以及calc语法。

    如果页面使用px单位,怎样进行rem的适配,把px转换为rem单位:

    参考地址:

  • 相关阅读:
    c# 序列化和反序列化
    dataGridView通过checkbox选择数据
    获取文件后缀名(迟点写入自己的类库里面去) .NET
    刚在《微软中国msdn围脖》看到面试题
    jquery 遍历下拉框
    html代码转换成为纯文本
    获取ListBox中多选值
    递归算法运用到实际项目,可行吗?
    ExtJs学习笔记1
    JS 可变参数 arguments
  • 原文地址:https://www.cnblogs.com/moqiutao/p/10473415.html
Copyright © 2020-2023  润新知