vue3移动端自适应方案

简介: 【8月更文挑战第12天】

移动端自适应目前主要有torem和toviewport两种方案,如果项目需要在宽屏上使用时优先使用rem,其他情况优先使用viewport(注意:是二选一方案噢,别全复制去了)

由于viewport单位得到众多浏览器的兼容,lib-flexible这个过渡方案已经可以放弃使用,不管是现在的版本还是以前的版本,都存有一定的问题。建议大家开始使用viewport来替代此方。

viewport 方案: postcss-px-to-viewport
rem 方案: amfe-flexible + postcss-pxtorem
一.依赖安装
viewport 方案(推荐)
postcss-px-to-viewport:自动将 px 转为 viewport
npm install @ttou/postcss-px-to-viewport -D
rem 方案
amfe-flexible(有宽屏显示竖屏需求则使用 lib-flexible ): 自适应设置根节点字体大小
lib-flexible会自动在html的head中添加一个meta name=”viewport”的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。

postcss-pxtorem: 自动将 px 转为 rem
npm i -S amfe-flexible
// 有宽屏显示竖屏需求则使用 npm i -S lib-flexible
npm i postcss postcss-pxtorem -D
二.配置和引入
main.js/main.ts

viewport 方案
import "normalize.css";
rem 方案
import "amfe-flexible";
// 有宽屏显示竖屏需求则使用 import "lib-flexible";
import "normalize.css";
根目录创建postcss.config.js

viewport 方案
module.exports = {
plugins: {
"@ttou/postcss-px-to-viewport": { // 配置详情可见 https://github.com/evrone/postcss-px-to-viewport/blob/master/README_CN.md#%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0
unitToConvert: "px",
viewportWidth: 750,
unitPrecision: 5,
propList: ["*"],
viewportUnit: "vw",
fontViewportUnit: "vw",
selectorBlackList: [],
minPixelValue: 1,
mediaQuery: false,
replace: true,
exclude: [/node_modules/],
include: undefined,
landscape: false,
landscapeUnit: "vw",
landscapeWidth: 1920,
},
},
};

'
运行运行
rem 方案
module.exports = {
plugins: {
"postcss-pxtorem": {
rootValue({ file }) {
return file.indexOf("vant") !== -1 ? 37.5 : 75; // 37.5用于兼容vant-ui,75基于750px设计稿
},
unitPrecision: 5,
propList: ["*"], // 需要转换rem的元素
// selectorBlackList: ["van-"],
replace: true,
mediaQuery: false,
minPixelValue: 0,
exclude: /node_modules|floder_name/i,
},
},
};

'
运行运行
注意:如果运行代码阶段报CommonJS的错误,把.js后缀改为.cjs就可以编译了(viewport 方案)

注意:

由于postcss-px-to-viewport不在支持了,统一换成postcss-mobile-forever,大家可以去看看,链接我发下面

postcss-mobile-forever - npm

相关文章
|
4月前
|
JavaScript 前端开发
vue实现移动端适配
vue实现移动端适配
55 0
|
4月前
|
前端开发 Android开发 iOS开发
移动端自适应解决方案vw(以react为例)
移动端自适应解决方案vw(以react为例)
110 0
|
4月前
|
JavaScript
vue基于vw实现移动端自适应
vue基于vw实现移动端自适应
71 0
|
4月前
|
前端开发 数据可视化 JavaScript
前端图形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
前端图形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
381 0
|
1月前
|
JavaScript
vue3移动端自适应方案
【8月更文挑战第14天】
124 7
|
1月前
|
存储 JavaScript 前端开发
vue前端自适应布局,一步到位所有自适应
【8月更文挑战第9天】在Vue前端实现全面自适应布局颇具挑战,但可通过多种方法达成接近目标的效果。首先,结合BootstrapVue或Element UI等响应式框架简化布局实现过程;其次,利用Sass或Less等预处理器增强CSS编写灵活性;再者,发挥Vue的响应式特性,动态调整组件尺寸与位置;同时采用Flexbox及媒体查询技术确保不同屏幕尺寸下的一致体验;针对移动设备,采取移动优先策略并使用专门框架优化表现;最后,多平台测试与细致调优保证布局效果。综合运用上述策略,可在复杂多变的设备环境中打造近乎完美的自适应布局。
|
4月前
|
编解码 JavaScript API
Vue在移动端的表现如何?
【5月更文挑战第30天】Vue在移动端的表现如何?
27 2
|
4月前
|
存储 缓存 开发框架
体验Vue神奇的响应式原理:让你的应用更快、更流畅(二)
体验Vue神奇的响应式原理:让你的应用更快、更流畅
|
4月前
|
JavaScript 前端开发 算法
体验Vue神奇的响应式原理:让你的应用更快、更流畅(一)
体验Vue神奇的响应式原理:让你的应用更快、更流畅
|
4月前
|
存储 JavaScript API
Vue 3实现的移动端两指控制图片缩放功能
Vue 3实现的移动端两指控制图片缩放功能
449 0