在vue中使用postcss-pxtorem,实现rem布局

安装postcss-pxtorem插件,实现使用px为单位,自动帮你转化为rem.

1.安装postcss-pxtorem插件

npm install postcss-pxtorem --save
cnpm install postcss-pxtorem --save

2.新建rem.js文件

const baseSize = 32
// 设置 rem 函数
function setRem () {
  // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。
  const scale = document.documentElement.clientWidth / 750
  // 设置页面根节点字体大小
  document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function () {
  setRem()
}

3.在package.json中,设置postcss-pxtorem

"postcss": {
    "plugins": {
      "autoprefixer": {},
      "postcss-pxtorem": {
        "rootValue": 32,
        "propList": [
          "*"
        ],
        "selectorBlackList": [
          "van-"
        ]
      }
    }
  }

说明:selectorBlackList 是一个数组,可以设置不转换的类名。这里的vant-vant ui库样式的前缀

4.在main.js中引入rem.js

import './utils/rem'

说明:这里引入的是你自己文件的路径

5.打开浏览器调试,如果效果如下图,说明设置成功
在这里插入图片描述
最后说明:这只是本人自己的一些使用,有不足的地方,欢迎大家前来指正

### 配置 PostCSS 插件 为了在 Vue 项目中实现 `postcss-pxtorem` 和 `postcss-px-to-viewport` 的配置,需先确保已安装必要的依赖包。 #### 安装依赖项 通过 npm 或 yarn 来安装所需的开发依赖: ```bash npm install postcss-loader postcss-pxtorem postcss-px-to-viewport --save-dev ``` 此命令会下载并安装这些工具到项目的 devDependencies 中[^2]。 ### 修改 vue.config.js 文件 对于基于 Vue CLI 构建的应用程序来说,在根目录下的 `vue.config.js` 文件内定义 PostCSS 插件及其选项是最常见的做法之一。如果该文件不存在,则可以创建它。 以下是针对两个不同插件的具体设置方法: #### 使用 postcss-pxtorem 进行 rem 转换 ```javascript module.exports = { css: { loaderOptions: { postcss: { plugins: [ require('autoprefixer'), require('postcss-pxtorem')({ rootValue: 37.5, propList: ['*'], selectorBlackList: [], replace: true, mediaQuery: false, minPixelValue: 0 }) ] } } } } ``` 这段代码设置了将所有的 CSS 属性值中的 px 自动转成相对应的 rem 值,并指定了基础字体大小为 37.5px[^4]。 #### 使用 postcss-px-to-viewport 实现 vw/vh 单位转换 同样地,在同一个地方添加另一个插件来处理视窗宽度百分比单位 (vw): ```javascript require('postcss-px-to-viewport')({ unitToConvert: 'px', // 默认是 "px", 可省略 viewportWidth: 375, // 设计稿的宽度 unitPrecision: 6, // 转换后的精度,默认取小数点后第6位 propList: ['*'], // 支持哪些属性转化 viewportUnit: 'vw' // 指定需要转换成的视区单位,默认vw }) ``` 上述配置意味着当设计图尺寸为 375px * 812px 时,每遇到一个以 px 结尾的样式声明都会被转化为相应的 vw 表达形式[^1]。 ### 应用场景说明 一旦完成了以上步骤之后,任何使用 .scss、.less 或者普通的 .css 编写的样式表都将受到这两个插件的影响。这意味着开发者可以在编写样式时不考虑具体的设备分辨率差异,而专注于逻辑布局;编译阶段则由 PostCSS 处理好兼容性和响应式的细节问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值