vue pc 端适配方案

作者: 阿巳交不起水电费 | 来源:发表于2024-03-05 15:05 被阅读0次

    gitHub demo 地址,大家记得点个 stars 哦!

    方案如下:

    1.开发时使用px作为单位,然后通过webpack将px转为rem,实现适配 -- 当前 vue2 demo 中采用的这种

    比如这里采用 lib-flexible【修改源码以支持pc,为了方便测量改为 1rem = 100px】+ postcss-pxtorem 方案。【注:px转rem的插件有很多,如 px2rem-loader、postcss-adaptive等,原理差不多】

    缺点:
    1.内联样式中的px不会被转换
    2.1px的不建议转换,若屏幕宽度过小缩放后将看不见,也可通过 minPixelValue 配置,ps:pc 端应该没有这个问题。
    3.开发时因为页面上都是转为rem后的值,不好确定其真实像素。--- 不过可以改为 100 倍数解决
    4.页面换算有抖动。
    5.计算肯定有轻微误差,小数点再多也不可能避免。

    优点:
    改起来快,对第三方ui库可以处理。

    注意:demo中 1rem = 100px,设计稿只要是1920宽度的就行了,直接量设计稿宽高,是多少就是多少,单位直接用px。

    这里修改了 lib-flexible 源码:

    image.png

    demo效果如下,可以看到element-ui中的px也转为了rem:

    image.png

    2.Viewport 单位,类似方案一,只是将rem 改为了 vw

    采用 postcss-px-to-viewport 将px 转 vw,优缺点类似。可参考再聊移动端页面的适配

    加一条缺点:
    当审查元素的时候,不好查看该元素的原始像素值,因为显示的是转换后的vw,但方案一可以通过 1rem = 100px 方式快速换算成原始值,也就是 * 100。

    3.根据特别的分辨率手写媒体查询针对处理,通常单位还是用的rem,当前也可以是Viewport 单位,百分比等

    
    /* 大于 1366px  */
    @media screen and (min-width:1367px) {
        .box {
            width: 1000px;
            height: 200px;
            background-color: blue;
        }
    }
    
    /* 大于 1680px  */
    @media screen and (min-width:1681px) {
        .box {
            width: 1500px;
            height: 200px;
            background-color: blue;
        }
    }
    

    缺点
    比较麻烦,对已经完成的项目修改起来成本太高,而且会有大量css代码维护也不方便。

    优点
    因为是针对性适配的,在这几个分辨率下的效果相对其他方案是最好的。

    4.缩放整个页面

    开发时还是使用px,开发时以某个分辨率为基准,然后实时计算不同分辨率下的缩放值,使用transform scale 方式实现缩放,不过注意 transform-origin 通常设置为左上角。

    缺点
    当屏幕分辨率宽高比和基准屏幕宽高比不一致时,有留白。

    优点
    改起来快,影响小

    扩展:移动端适配方案参考

    使用Flexible实现手淘H5页面的终端适配
    再聊移动端页面的适配

    若对你有帮助,请点个赞吧,若能打赏不胜感激,谢谢支持!
    本文地址:https://www.jianshu.com/p/0b599eb0ba46?v=1709708707915,转载请注明出处,谢谢。

    相关文章

      网友评论

        本文标题:vue pc 端适配方案

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