postcss-pxtorem插件理解与使用

常用的H5网页适配方案,Rem算是非常好用的一个了。就连uniapp也是在底层写好了rpx单位来实现的多设备适配,原理等同rem。

什么是Rem

  • rem(font size of the root element)是指相对于根元素html的字体大小的单位。
    简单的说它就是一个相对单位。设置 html 的 font-size 属性,rem 是根据它的大小来动态变化整个项目中使用 rem 单位的元素大小。
  • 如果根元素(即HTML元素)元素的字体大小是 16px,那么 1rem 就等于 16px。如果 HTML 元素的字体大小改变,那么使用 rem 作为单位的元素的大小也会相应地改变。

postcss-pxtorem
项目地址
postcss-pxtorem是一个PostCSS插件
用于将CSS中的像素值转换为rem单位,以实现响应式布局和适配不同屏幕尺寸的需求

安装
$ npm install postcss-pxtorem

设置
vite.config.js

import postCssPxToRem from "postcss-pxtorem";
export default defineConfig({
  ...
  css: {
    postcss: {
      plugins: [
        postCssPxToRem({
          // 自适应,px>rem转换
          rootValue: 37.5, // 75表示750设计稿,37.5表示375设计稿
          propList: ["*"], // 需要转换的属性,这里选择全部都进行转换
          selectorBlackList: ["norem"], // 过滤掉norem-开头的class,不进行rem转换
        }),
      ],
    },
  },
});
postcss-pxtorem插件的配置可以通过在vue.config.js配置文件中引入并设置相关参数实现。在plugins选项中添加postcss-pxtorem插件,并在该插件的配置中设置rootValue和propList属性。其中,rootValue属性用于指定转换比例,将px转换为rem,propList属性用于指定需要转换的CSS属性。例如,可以将rootValue设置为37.5,以适配vant插件的设计稿,propList可以设置为['*']以转换所有属性。以下是一个配置示例: ``` const pxtorem = require('postcss-pxtorem'); module.exports = { css: { loaderOptions: { postcss: { plugins: [ pxtorem({ rootValue: 37.5, // 根据自己的设计稿配置,这里配置的是宽度375的设计稿(如果使用了vant插件) propList: ['*'], selectorBlackList: ['van-circle__layer'] // 可选,需要忽略的CSS选择器 }) ] } } } }; ``` 这样配置后,postcss-pxtorem插件就会按照指定的比例将CSS文件中的px单位转换为rem单位。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [postcss-pxtorem 插件的配置](https://blog.csdn.net/weixin_58414196/article/details/123639073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [vue移动端项目rem自适应适配插件postcss-pxtorem使用](https://blog.csdn.net/weixin_51697449/article/details/121417760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳动的世界线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值