vite使用postcss-pxtorem让移动端兼容pc端

1、安装postcss-pxtorem

npm i postcss-pxtorem -D

2、配置文件

vite.config.ts 文件

```html
css: {
      postcss: {
        plugins: [
          require('postcss-pxtorem')({
            rootValue: 37.5, // UI设计稿的宽度/10
            unitPrecision: 3, // 转rem精确到小数点多少位
            propList: ['*'], // 需要转换的属性 *表示所有
            selectorBlackList: ['ignore'], // 不进行px转换的选择器
            replace: true, // 是否直接更换属性值,而不添加备用属性
            mediaQuery: false, // 是否在媒体查询的css代码中也进行转换
            minPixelValue: 0, // 设置要替换的最小像素值
            exclude: /node_modules/i // 排除node_modules文件夹下的文件
          }),
        ]
      }
    },
    

3、创建rem.tsx文件,处理pc端适配

rem.tsx文件

// 判断是否是PC端
const isPc = !(/Android|iPhone|SymbianOS|Windows Phone|iPad|iPod/i.test(navigator.userAgent))
// 设置基础根文件大小
let baseSize = 37.5
// rem 函数
function setRem() {
  const clientWidth = document.documentElement.clientWidth
  // 设计稿一般都是以375的宽度
  let scale = clientWidth / (baseSize * 10)
  // 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)
  let enlarge = 1.5
  if (isPc) {
    enlarge = 1
    scale = clientWidth / 980 // 980 是PC端设计稿的宽度
  }
  document.documentElement.style.fontSize = baseSize * Math.min(scale, enlarge) + 'px'
}
// 调用方法
setRem()

// 监听窗口在变化时重新设置跟文件大小
window.onresize = function () {
  setRem()
}

export default {}

4、main.ts文件中引入

import './utils/rem'

5、运行

运行后查看样式,px都被转为了rem
在这里插入图片描述

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vite使用 postcss-pxtorem 插件可以将 CSS 文件中的像素单位(px)转换为 rem 单位。这样做的好处是可以方便地适配不同的屏幕尺寸。 以下是在 Vite使用 postcss-pxtorem 的步骤: 1. 首先,确保你的项目已经安装了 postcsspostcss-pxtorem 插件。你可以使用以下命令进行安装: ```shell npm install postcss postcss-pxtorem --save-dev ``` 2. 在项目根目录下创建一个 postcss.config.js 文件,并添加以下内容: ```javascript module.exports = { plugins: [ require('postcss-pxtorem')({ rootValue: 16, // 屏幕宽度基准值,比如设计稿是以 375px 宽度为基准,设置为 16 则表示 1rem = 16px propList: ['*'], // 需要转换的 CSS 属性,* 表示所有 selectorBlackList: [], // 需要忽略的 CSS 选择器,比如 '.ignore' 表示不转换 .ignore 类下的样式 minPixelValue: 2 // 小于该值的像素单位不进行转换 }) ] }; ``` 3. 在 Vite 的配置文件 vite.config.js 中添加 postcss 插件配置。假设你已经有一个名为 `vue.config.js` 的配置文件,你可以修改它如下: ```javascript import { defineConfig } from 'vite'; export default defineConfig({ // 其他配置项... css: { postcss: { plugins: [ require('postcss') ] } } }); ``` 或者,如果你使用的是 Vite 1.x 版本,可以修改为: ```javascript module.exports = { // 其他配置项... css: { postcss: { plugins: [ require('postcss') ] } } }; ``` 4. 现在你可以在 CSS 文件中使用像素单位了,它们会自动被转换为 rem 单位。例如: ```css .container { width: 375px; font-size: 16px; padding: 10px 20px; } ``` 经过 postcss-pxtorem 插件的转换后,会变成: ```css .container { width: 23.4375rem; font-size: 1rem; padding: 0.625rem 1.25rem; } ``` 这样,你就成功地在 Vite使用postcss-pxtorem 插件来进行像素单位转换了。希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值