美文网首页
6. 移动端适配vw方案

6. 移动端适配vw方案

作者: 未路过 | 来源:发表于2022-10-10 00:13 被阅读0次

    1.vw和rem的对比

    ◼ rem事实上是作为一种过渡的方案,它利用的也是vw的思想。

    1. 前面不管是我们自己编写的js,还是flexible的源码;
    2. 都是将1rem等同于设计稿的1/10,在利用1rem计算相对于整个屏幕的尺寸大小;
    3. 那么我们来思考,1vw不是刚好等于屏幕(视口宽度)的1/100吗?
    4. 而且相对于rem还更加有优势
      5.兼容性
      在caniuse上面搜viewport,发现vw的兼容性很好了,ie9 10 11加浏览器前缀就可以了。


      image.png

    2. vw相比于rem的优势:

    1. 优势一:不需要去计算html的font-size大小,也不需要给html设置这样一个font-size;
    2. 优势二:不会因为设置html的font-size大小,而必须给body再设置一个font-size,防止继承;
    3. 优势三:因为不依赖font-size的尺寸,所以不用担心某些原因html的font-size尺寸被篡改,页面尺寸混乱;
    4. 优势四:vw相比于rem更加语义化,1vw刚才是1/100的viewport的大小;
    5. 优势五:可以具备rem之前所有的优点;

    vw我们只面临一个问题,将尺寸换算成vw的单位即可;所以,目前相比于rem,更加推荐大家使用vw(但是理解rem依然很重要)
    缺点就是当屏幕特别大,我们一直都是vw,相对于视口,这个时候是不能做限制的,但是rem的话,可以使用媒体查询,设置屏幕最大值的时候的html的字体大小。最大限度的放大和缩小的时候使用rem。

    3. vw的单位换算

    1. 方案一:手动换算
    • 比如有一个在375px屏幕上,100px宽度和高度的盒子;
    • 我们需要将100px转成对应的vw值;
    • 100/3.75=26.667,其他也是相同的方法计算即可;
      26就是相对于哦屏幕宽度的百分之26!直接能知道意思,不需要再思考html的字体大小。
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
          /* 设置给375px的设计稿 */
          /* 1vw = 3.75px */
          .box {
            width: 26.6667vw;
            height: 26.6667vw;
            background-color: orange;
          }
    
          p {
            font-size: 3.733333vw;
          }
        </style>
      </head>
      <body>
        <div class="box"></div>
        <p>我是文本</p>
      </body>
    </html>
    
    
    1. 方案二:less/scss函数


      image.png
    2. 方案三:postcss-px-to-viewport-8-plugin(后续学习)
      和rem一样,在前端的工程化开发中,我们可以借助于webpack的工具来完成自动的转化;

    3. VSCode插件
       px to vw 的插件,在编写时自动转化;


      image.png

    修改这个值


    image.png

    375的设计稿的化,就改成375

    相关文章

      网友评论

          本文标题:6. 移动端适配vw方案

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