当前位置: 首页 > 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, // 是否在媒体查询中也转换pxreplace: true, // 是否直接更换属性值exclude: /(\/|\\)(node_modules)(\/|\\)/, // 忽略某些文件夹下的文件或者某些特定文件}}
}

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

module.exports = ((value) => {// 不让页面随屏幕的变化而变大变小的文件名称let originalSizePage = ['homePc']// 文件路径,包括文件名称let path = value.webpack.resourcePath// 该文件是否要设置基准值(是否要根据屏幕分辨率去缩放)let isOriginalSize = falseif(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 : 750unitPrecision: 5, // 单位转换后保留的精度propList: ['*'], // 指定转换那些属性,*表示全部viewportUnit: 'vw', // 希望使用的视口单位fontViewportUnit: 'vw', // 字体使用的视口单位selectorBlackList: [], // 要忽略的选择器minPixelValue: 1, // 最小的转换数值mediaQuery: false, // 是否在媒体查询中也转换pxreplace: true, // 是否直接更换属性值exclude: /(\/|\\)(node_modules)(\/|\\)/, // 忽略某些文件夹下的文件或者某些特定文件}}}}
})
http://www.lryc.cn/news/541935.html

相关文章:

  • DeepSeek 冲击(含本地化部署实践)
  • eNSP下载安装(eNsp、WinPcap、Wireshark、VirtualBox下载安装)
  • 利用Ai对生成的测试用例进行用例评审
  • C#上位机--跳转语句
  • `sh` 与 `bash` 的区别详解
  • *PyCharm 安装教程
  • [特殊字符] Elasticsearch 双剑合璧:HTTP API 与 Java API 实战整合指南
  • 网络和操作系统基础篇
  • Oracle 连接报错:“ORA-12541:TNS:no listener ”,服务组件中找不到监听服务
  • 内外网文件传输 安全、可控、便捷的跨网数据传输方案
  • 基于Flask的租房信息可视化系统的设计与实现
  • 《Keras 2 :使用 RetinaNet 进行对象检测》:此文为AI自动翻译
  • 【Erdas实验教程】010:监督分类及后处理、精度评价
  • Moonshot AI 新突破:MoBA 为大语言模型长文本处理提效论文速读
  • 【Python量化金融实战】-第1章:Python量化金融概述:1.2 Python在量化金融中的优势与生态
  • react路由总结
  • edge浏览器将书签栏顶部显示
  • AIGC-Stable Diffusion模型介绍
  • 【算法】游艇租贷
  • 科普:Docker run的相关事项
  • Ryu:轻量开源,开启 SDN 新程
  • Python游戏编程之赛车游戏6-2
  • IDEA + 通义灵码AI程序员:快速构建DDD后端工程模板
  • libwebsockets交叉编译全流程
  • 蓝思科技赋能灵伴科技:AI眼镜产能与供应链双升级
  • 谷歌浏览器更新后导致的刷新数据无法显示
  • Nginx学习笔记:常用命令端口占用报错解决Nginx核心配置文件解读
  • Pinia 3.0 正式发布:全面拥抱 Vue 3 生态,升级指南与实战教程
  • at32f103a+rtt+AT组件+esp01s 模块使用
  • EasyRTC:全平台支持与自研算法驱动的智能音视频通讯解决方案