vue3 vite项目中,如何px转rem实现自适应

  1. 安装 postcss-pxtorem:
    npm install postcss-pxtorem -D // 用来把px转rem
    npm install amfe-flexible -D // 用来修改根元素字体大小

  2. 配置 vite.config.ts:

import { defineConfig } from 'vite'
import postcssPxtoRem from 'postcss-pxtorem'

export default defineConfig({
  css: {
    postcss: {
      plugins: [
        postcssPxtoRem({
          rootValue: 192, // 按照自己的设计稿修改 1920/10
          unitPrecision: 5, // 保留到5位小数
          selectorBlackList: ['ignore', 'tab-bar', 'tab-bar-item'],  // 忽略转换正则匹配项
          propList: ['*'],
          replace: true,
          mediaQuery: false,
          minPixelValue: 0
        })  
      ]
    }
  }
})
  1. main.ts文件中引入amfe-flexible
import 'amfe-flexible'
  1. 在样式中使用 px 作为单位:
.content {
  font-size: 20px;
}
  • 如果是行内样式或者js赋值的px这个插件不会转行rem,这个时候需要在赋值的时候/192
<div :style="{width: 1000 / 192 + 'rem', height: 500 / 192 + 'rem'}"></div>
  • 使用此插件后不推荐使用grid布局,会出现一些奇奇怪怪的尺寸兼容问题
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 3项目使用TypeScript和Vite构建工具,并且使用Vant组件库时,可以使用postcss-pxtorem插件将px单位换为rem单位。 首先,在项目根目录下的`postcss.config.js`文件配置postcss-pxtorem插件: ```javascript module.exports = { plugins: [ require('postcss-pxtorem')({ rootValue: 16, // 基准值,根据设计稿调整 propList: ['*'], }), ], }; ``` 上述配置,`rootValue`表示1rem对应的像素大小,可以根据你的设计稿进行调整。`propList`表示要换的属性列表,`'*'`表示全部属性。 然后,在Vite的配置文件`vite.config.js`,添加postcss配置: ```javascript const { createVuePlugin } = require('vite-plugin-vue2'); const vue2 = createVuePlugin(); module.exports = { plugins: [ vue2, ], css: { postcss: { plugins: [ require('postcss-pxtorem')({ rootValue: 16, propList: ['*'], }), ], }, }, }; ``` 这样配置之后,项目的样式文件px单位就会被自动换为rem单位了。需要注意的是,Vite默认支持导入CSS文件,但不会对其进行处理,如果你想使用Vant组件库的样式,需要将Vant的样式文件单独引入到你的项目。 以下是一个使用Vant组件库的Vue 3 + TypeScript + Vite项目的示例: ```typescript // main.ts import { createApp } from 'vue'; import Vant from 'vant'; import 'vant/lib/index.css'; import App from './App.vue'; const app = createApp(App); app.use(Vant); app.mount('#app'); ``` 这样就可以在Vue 3项目使用TypeScript和Vite构建工具,并将px单位换为rem单位了。希望对你有所帮助!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值