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

vue3+vite+amfe-flexible+postcss-pxtorem 实现全分辨率自适应

使用背景

在项目开发过程中,需要自适应多个分辨率,但是我目前按照设计稿开发出1920*1080的界面,为了快速实现自适应多个分辨率的目的,引用本组件

1.使用插件

npm install amfe-flexible --save
npm install postcss-pxtorem autoprefixer --save-dev

2.使用

2.1 编写自定义脚本,适配全分辨率

文件名称: flexible.js
文件路径: src/utils/flexible.js

// 增强版适配方案(支持PC+移动)
(function (window, document) {const docEl = document.documentElementconst dpr = window.devicePixelRatio || 1// 设置body基准字体function setBodyFontSize() {if (document.body) {document.body.style.fontSize = 12 * dpr + 'px'}}// 动态计算rem基准值function setRemUnit() {const clientWidth = docEl.clientWidthlet baseSize = 16 // 默认基准值// 多分辨率适配策略if (clientWidth < 768) {baseSize = (clientWidth / 375) * 16 // 移动端适配} else if (clientWidth < 1920) {baseSize = (clientWidth / 1920) * 16 // PC端等比缩小} else {baseSize = (clientWidth / 1920) * 16 // 大屏等比放大}docEl.style.fontSize = baseSize + 'px'}// 初始化设置setBodyFontSize()setRemUnit()// 监听事件window.addEventListener('resize', setRemUnit)window.addEventListener('pageshow', (e) => {if (e.persisted) {setRemUnit()}})
})(window, document)

2.2 编写配置文件

文件名称:postcss.config.js
文件路径:根目录

// 布局自适应配置
export default {plugins: {'postcss-pxtorem': {rootValue: 16, // 设计稿宽度 1920px 时,1rem = 192pxpropList: ['*'], // 所有属性都转换selectorBlackList: ['.ignore-rem'] // 忽略某些选择器},autoprefixer: {} // 自动添加浏览器前缀}
}

2.3 main.js 引入 flexible.js文件

必须比其他css样式先引入,要不然不生效

// 引入flexible 自适应
import '@/utils/flexible'

2.4 vite.config.js 配置 css解析

export default defineConfig(({ mode }) => {return {css: {postcss: './postcss.config'// 显式声明配置路},}
})

2.5 index.html引入

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

3. 修改文件以及对应目录

在这里插入图片描述

4. 实现的效果

实现的话再评论区扣1,SQ

相关文章:

  • 文件上传绕过方法总结
  • 3分钟学会跨浏览器富文本编辑器开发:精准光标定位+内容插入(附完整代码)
  • 5.27 打卡
  • MySQL问题:MySQL中使用索引一定有效吗?如何排查索引效果
  • 《Python基础》第1期:人生苦短,我用Python
  • 第四十七篇-Tesla P40+Qwen3-30B-A3B部署与测试
  • SD07_NVM的安装及相关操作
  • qiankun 子应用怎样通过 props拿到子应用【注册之后挂载之前】主应用中发生变更的数据
  • 6个月Python学习计划 Day 6 - 综合实战:学生信息管理系统
  • 【系分】论文模版
  • 开源酷炫大数据可视化大屏html+eacher 100+套
  • 2025 海外短剧 CPS 系统开发:技术驱动下的全球化内容分销新范式
  • Spark、Hadoop对比
  • Day04
  • cursor-stats 实时监控 Cursor IDE 的使用情况和订阅状态
  • 体现物联网环境下安全防护的紧迫性 :物联网环境下的个人信息安全:隐忧与防护之道
  • Linux升级内核回退到旧内核启动
  • 2025上半年软考系统架构设计师选择题试题与答案
  • spring4第2课-ioc控制反转-依赖注入,是为了解决耦合问题
  • springboot--实战--大事件--用户接口开发
  • 做门户网站的系统/关键词搜索热度查询
  • 手机网站支持微信支付/南昌企业网站建设
  • 万网注册域名做简单网站/郑州网站seo外包公司
  • 微信引流神器手机电影网站怎么做/宁波网站建设方案推广
  • 广昌网站建设制作/武汉百度信息流广告
  • 太原制作公司网站/附近广告公司