【Plugin】postcss-px2rem 插件进行内容自适应

1.安装

npm i postcss-px2rem -D

2.vue.config.js 文件中

const px2rem = require('postcss-px2rem');
const postcss = px2rem({
  remUnit: 192 //基准大小 baseSize,需要和rem.js中相同 
});
module.exports = {
// 其他内容
 css: {
    loaderOptions: {
      postcss: {
        plugins: [postcss]
      }
    }
  }
};

3.在src下创建rem.js文件夹

export function setRemInit() {
  // postcss-px2rem的内容
  // 基准大小
  const baseSize = 192;
  // 设置 rem 函数
  function setRem() {
    // 当前页面宽度相对于 1920 px(设计稿尺寸)的缩放比例,可根据自己需要修改。
    const scale = document.documentElement.clientWidth / 1920;
    // 设置页面根节点字体大小
    document.documentElement.style.fontSize = `${baseSize * scale}px`;
    
    // 这个if语句代码,是用来控制屏幕的最小宽度,不需要可以可以不写
    if (Number(document.documentElement.style.fontSize.slice(0, -2)) <= 130) {
      document.documentElement.style.fontSize = '130px';
    }
  
  }
### 配置 PostCSSpostcss-pxtorem 为了使 Vite 项目中的 CSS 能够自适应不同分辨率的显示器,在 `postcss.config.js` 文件中配置插件 `postcss-pxtorem` 是一种有效的方法。通过这种方式可以将固定的 px 单位转化为相对单位 rem,从而提高页面在各种设备上的显示效果。 对于 PC 端页面来说,通常会设定一个基础字体大小作为根元素 (`html`) 的 font-size 属性值,这有助于计算其他 HTML 元素相对于这个基准的比例尺。下面是一个具体的例子来说明如何设置: ```javascript // project-root/postcss.config.js module.exports = { plugins: { 'postcss-pxtorem': { rootValue: 16, // 设计稿每 10 像素对应实际网页上 1rem propList: ['*'], // 对所有属性应用转换 selectorBlackList: ['.ignore', '.hairlines'] // 排除不需要被处理的选择器前缀 } } }; ``` 此段代码定义了一个名为 `rootValue` 的参数用于指定设计图尺寸与最终渲染结果之间的比例关系;而 `propList` 参数则决定了哪些样式属性应该参与从像素到 rem 的自动替换过程[^1]。 另外需要注意的是,当使用 Vite 构建工具时,还需要确保已经安装好了必要的依赖包以便支持 PostCSS 及其扩展功能。可以通过执行如下命令完成这些软件包的下载并保存至开发环境下的 node_modules 中: ```bash yarn add vite @vitejs/plugin-vue postcss autoprefixer postcss-pxtorem --dev ``` 最后一步是在项目的入口文件 (通常是 main.css 或 index.html 内部链接引入的第一个外部样式表) 加入一行简单的 CSS 来初始化 html 标签的基础字体大小,例如: ```css /* styles/main.css */ html { font-size: 16px; } ``` 这样做能够保证整个文档流内的子节点都能继承这一默认值,并在此基础上按照预设逻辑调整自身的具体表现形式[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值