当前位置: 首页 > news >正文

postcss.config.js 动态配置基准值

在Vue项目中引入PostCSS可以实现不同分辨率的自适应,通常在H5项目中使用


1. 安装插件

npm install --save-dev postcss postcss-loader autoprefixer

2. 新建postcss.config.js文件,添加下列配置项

module.exports = {
  plugins: {
    'postcss-px-to-viewport': {
      unitToConvert: 'px', // 要转换的单位
      viewportWidth: 750, // 设计稿宽度
      unitPrecision: 5, // 单位转换后保留的精度
      propList: ['*'], // 指定转换那些属性,*表示全部
      viewportUnit: 'vw', // 希望使用的视口单位
      fontViewportUnit: 'vw', // 字体使用的视口单位
      selectorBlackList: [], // 要忽略的选择器
      minPixelValue: 1, // 最小的转换数值
      mediaQuery: false, // 是否在媒体查询中也转换px
      replace: true, // 是否直接更换属性值
      exclude: /(\/|\\)(node_modules)(\/|\\)/, // 忽略某些文件夹下的文件或者某些特定文件
    }
  }
}

3. 如果一个H5项目,即有移动端的页面,又有PC端的页面,且为不同迟勋的设计稿,移动端的H5需要根据屏幕进行自适应,而PC端不需要进行自适应,或者因为设计稿不同,设置的基准值和移动端不是同一个。这种情况下可以通过文件路径去判断我们要设置什么样的基准值了

module.exports = ((value) => {
  // 不让页面随屏幕的变化而变大变小的文件名称
  let originalSizePage = ['homePc']
  // 文件路径,包括文件名称
  let path = value.webpack.resourcePath
  // 该文件是否要设置基准值(是否要根据屏幕分辨率去缩放)
  let isOriginalSize = false
  if(path){
    originalSizePage.forEach(name => {
      if(path.includes(name)){
        isOriginalSize = true
      }
    })
  }
  // console.log("**webpack: --" , path, isOriginalSize)

  if(isOriginalSize){
    // 不需要缩放
    return {}
  }else{
    // 需要缩放
    return {
      plugins: {
        'postcss-px-to-viewport': {
          unitToConvert: 'px', // 要转换的单位
          viewportWidth: 750, // 设计稿宽度, 可以根据文件名称不定义不同的宽度 flag ? 1920 : 750
          unitPrecision: 5, // 单位转换后保留的精度
          propList: ['*'], // 指定转换那些属性,*表示全部
          viewportUnit: 'vw', // 希望使用的视口单位
          fontViewportUnit: 'vw', // 字体使用的视口单位
          selectorBlackList: [], // 要忽略的选择器
          minPixelValue: 1, // 最小的转换数值
          mediaQuery: false, // 是否在媒体查询中也转换px
          replace: true, // 是否直接更换属性值
          exclude: /(\/|\\)(node_modules)(\/|\\)/, // 忽略某些文件夹下的文件或者某些特定文件
        }
      }
    }
  }
})

相关文章:

  • Windows 图形显示驱动开发-驱动驻留的分配用法跟踪
  • C++基础知识学习记录—继承
  • R语言NIMBLE、Stan和INLA贝叶斯平滑及条件空间模型死亡率数据分析:提升疾病风险估计准确性...
  • 使用Python中的`gensim`库构建LDA(Latent Dirichlet Allocation)模型来分析收集到的评论
  • 【精调】LLaMA-Factory 快速开始1: Meta-Llama-3.1-8B-Instruct
  • 免费体验,在阿里云平台零门槛调用满血版DeepSeek-R1模型
  • 使用机器学习算法进行大数据预测或分类的案例
  • zero自动化框架搭建---Git安装详解
  • 基于ffmpeg+openGL ES实现的视频编辑工具-解码(四)
  • 设计模式教程:享元模式(Flyweight Pattern)
  • golang访问google sheet 写接口
  • LVGL在VScode中安装模拟器运行配置笔记教程
  • 基于Java+SpringBoot+Vue的前后端分离的汽车租赁系统
  • 深入理解指针
  • Xshell连接虚拟机ubuntu,报错(port 22): Connection failed.
  • Oracle RAC数据库单节点轮流重启
  • 解析京东商品评论API接口 ——json数据示例参考
  • 第四篇:开源生态与蒸馏模型的价值
  • LLaMA 3.1 模型在DAMODEL平台的部署与实战:打造智能聊天机器人
  • Java IO 流核心技术全解析
  • 网站建设发展趋势/怎么做表格
  • 手机商城网站方案/济南最新消息今天
  • 企业邮箱怎么注册的/画质优化app下载
  • 哪些网站做批发/百度软件中心下载
  • 外贸网站建设及推广/点击器 百度网盘
  • 黑色装修网站源码dede/青岛网站推广企业