vue移动端适配(两种方案)

一.vw 方案(推荐)

1.安装依赖

npm i -D postcss-px2vp

2.然后在项目根目录创建 postcss.config.js 文件:

module.exports = {
    plugins: {
        'postcss-px2vp': {
            viewportWidth(rule) { // 1. 如果设计稿宽度是750px + 使用Vant
                const file = rule.source?.input.file
                return file?.includes('vant') ? 375 : 750;
            },
            // viewportWidth: 750, // 2.如果设计稿宽度是 750px + 不适用Vant
            // viewportWidth: 375, // 3.如果设计稿宽度是 375px + 无论是否使用Vant
            propList: ['*','!font*','!line-height','!letter-spacing'],
        },
    },
};
这个文件会被自执行

说明:

        使用 postcss-px2vp,而不是 postcss-px-to-viewport,是因为后者:

                不支持设置动态 viewportWidth ,就无法同时支持宽度是 750px 的设计搞 + Vant

                不支持 PostCSS 8

        Vant 的设计稿宽度是 375px,但我们的设计稿宽度大多是 750px

        字体不转换,保持 px 单位

二、rem 方案

yarn add amfe-flexible
或者使用
npm i amfe-flexible

然后在项目根目录中创建 postcss.config.js 文件:

module.exports = {
    plugins: {
        // postcss-pxtorem 插件的版本需要 >= 5.0.0
// 适用版本 5.1.1
        // yarn add -D postcss-pxtorem@5.1.1
        // npm install postcss-pxtorem@5.1.1 -D
        'postcss-pxtorem': {
            rootValue({ file }) { // 如果设计稿宽度是 750px + Vant
                // 判断是否是vant的文件 如果是就使用 37.5为根节点字体大小
                // 否则使用75 因为vant使用的设计标准为375 但是市场现在的主流设置尺寸是750
                return file.indexOf('vant') !== -1 ? 37.5 : 75;
            },
            // rootValue: 75, // 2.如果设计稿宽度是 750px + 不适用Vant
            // rootValue: 37.5, // 3.如果设计稿宽度是 375px + 无论是否使用Vant
            // 配置哪些文件中的尺寸需要转化为rem *表示所有的都要转化
            propList: ['*','!font*','!line-height','!letter-spacing'],
        },
    },
};
这个文件会被自执行

说明: 

        1. amfe-flexible 设置 rem 的基准值(即<html style="font-size: XXXpx">)

        2. postcss-pxtorem 是一个 PostCSS 插件,将 px 转为 rem

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值