px转为rem

postcss-pxtorem是PostCSS的插件,用于将像素单元生成rem单位。

前端开发还原设计稿的重要性毋庸置疑,目前应用的单位最多还是rem,然而每次在制作过程中需要自己计算rem值,为了能够直接按照设计图的尺寸开发,并且能自动编译转换成rem,下面就来分享下postcss-pxtorem的使用。

1.安装依赖

npm install postcss-pxtorem -D

2.设置规则(更改postcss.config.js,该文件为使用vue-cli3自动创建的文件)

module.exports = {
  plugins: {
    'autoprefixer': {
      browsers: ['Android >= 4.0', 'iOS >= 7']
    },
    'postcss-pxtorem': {
      rootValue: 16,//结果为:设计稿元素尺寸/16,比如元素宽320px,最终页面会换算成 20rem
      propList: ['*']
    }
  }
}

在main.js中引入rem.js

import './libs/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()
}

 

最后刷新页面看下,就会发现原本用px的单位已经自动换算成了rem;

简单来说就是:如果设计稿的宽度为320px,

我们会把宽度分为20份,每份的值为16px;html font-size 为16px,postcss.config.js中就是16,

但现在常用的设计图宽度为750,分成20分,每份为37.5,html font-size 为37.5px,postcss.config.js中就是37.5,

这只是针对屏幕为750的时候,如果别的宽度就用到 htmlWidth/20了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue 3中使用TypeScript和Vite开发项目时,将像素(px)转换为rem有几种方法。以下是其中一种常用的方法: 1. 首先,为了方便转换,你可以在根组件中设置一个基准字体大小。在`App.vue`文件中,你可以添加以下代码: ```vue <template> <div id="app"> <!-- your app content --> </div> </template> <script> export default { created() { // 根据设计稿的尺寸设置基准字体大小,例如设计稿宽度为750px,基准字体大小为100px const baseFontSize = 100; const designWidth = 750; const screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.documentElement.style.fontSize = `${(screenWidth / designWidth) * baseFontSize}px`; }, }; </script> <style> /* 全局样式中可以使用rem单位 */ body { font-size: 16px; /* 可以使用px作为备用单位 */ } </style> ``` 通过以上代码,我们可以将根元素的字体大小设置为屏幕宽度的比例乘以基准字体大小,从而实现根据屏幕宽度自动调整字体大小。 2. 在项目中使用`postcss-pxtorem`插件来自动将px单位转换为rem单位。首先,安装插件: ```shell npm install postcss-pxtorem --save-dev ``` 然后,在项目根目录下创建一个`postcss.config.js`文件,配置插件: ```javascript module.exports = { plugins: { 'postcss-pxtorem': { rootValue: 100, // 设置基准字体大小,与设计稿一致 propList: ['*'], // 需要转换的属性,这里表示所有属性都需要转换 }, }, }; ``` 最后,在`vite.config.js`文件中添加postcss插件配置: ```javascript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [vue()], css: { postcss: { plugins: [require('postcss-pxtorem')], }, }, }); ``` 这样,在你的Vue组件中使用px单位时,它们将自动转换为rem单位。 这是一种常用的方法。当然,还有其他一些工具和方法可以实现将px转换为rem,请根据你的项目需求选择适合的方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值