关于vant里面的元素px转rem

本文介绍了如何通过npm安装postcss-pxtorem和amfe-flexible,配置postcss.config.js文件,以及在main.js中引入相关代码,实现在不同设备上自动将px转换为rem,从而实现响应式布局。此外,还提供了手动创建rem.js文件的方法,同样达到px转rem的效果。
摘要由CSDN通过智能技术生成

1

用npm下载以下

npm install postcss-pxtorem --save-dev
npm install amfe-flexible --save-dev

在postcss.config.js里面输入以下代码(没有该文件的话,可以自己在项目的根目录里面进行创建

module.exports = {
  plugins: {
    'autoprefixer': {
      browsers: ['Android >= 4.0', 'iOS >= 7']
    },
    'postcss-pxtorem': {
      rootValue: 37.5,
      //这是基准值,在375px的屏幕变大rem的值会变大,小于这个大小元素的rem值会变小
      propList: ['*']
    }
  }
  }

(1)最后在main.js里面引入

import 'amfe-flexible     

重启服务即可观察到px已经自动转成了rem

(2)或在plugin文件夹里面创建rem.js

// 设置 rem 函数
function setRem () {

    // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
    let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
//得到html的Dom元素
    let htmlDom = document.getElementsByTagName('html')[0];
//设置根元素字体大小
    htmlDom.style.fontSize= htmlWidth/20 + 'px';
}
// 初始化
setRem();
// 改变窗口大小时重新设置 rem
window.onresize = function () {
    setRem()
}

 同样,在main.js里面引入即可

重启服务观察到px已经自动转成了rem

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单位了。希望对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值