关于vue大屏自适应

关于vue-cil3中大屏自适应的问题

在vue大屏开发过程中基于不同的分辨率下,组件发生了样式变形,在开发设备中可以良好的展示,但在不同分辨率中显示的样式(尤其是高度)发生了极大的变化。
在网上查阅的众多资料中大多利用获取屏幕高度或者安装手淘(flexible)来解决问题,在vue-cil3的开发中解决大屏自适应中网上的很多教程不仅繁锁而且解决不了分辨率的自适应问题。
经历了无数次的下插件,删插件之后
https://blog.youkuaiyun.com/weixin_42689212/article/details/107258306
这个博客解决了困扰了好久的问题
通过

npm install --save postcss-px-to-viewport
//安装插件
npm run serve
//重新编译

(类比百分百比布局)
背景最大宽度:100vw;
背景最大高度:100vh;
字体大小使用 vh 作为单位

Vue实现自适应有多种方法,以下为详细介绍: - **Vue2结合Vuetify和Vuex实现**:在Vue.js里创建数据,使其自适应不同小,一般涉及布局的响应式设计、CSS媒体查询,以及利用Vue的事件系统处理窗口小变化。可使用Vue2、Vuetify(基于Material Design的Vue UI框架)和Vuex(Vue的状态管理库)构建响应式数据 [^1]。 - **Vue3使用自定义函数实现**:在Vue3中,可通过自定义函数将px单位转换为视口单位。示例代码如下: ```typescript // style/outoFit.ts import { ref } from "vue"; const designWidth = ref(1920); const designHeight = ref(1080); export const pxToVw = (px: number): string => `${(px * 100) / designWidth.value}vw`; export const pxToVh = (px: number): string => `${(px * 100) / designHeight.value}vh`; export const pxToFont = (px: number): string => `${(px * 100) / designWidth.value}vw`; ``` 通过上述函数,可将像素值转换为视口宽度(vw)或视口高度(vh)的单位,以实现自适应 [^2]。 - **使用postcss-px-to-viewport插件**:在和`vue.config.js`文件同级处,创建一个`postcss.config.js`文件,配置`postcss-px-to-viewport`插件,自动将px单位转换为视口单位。示例配置如下: ```javascript module.exports = { plugins: { 'postcss-px-to-viewport': { unitToConvert: 'px', // 需要转换的单位,默认为"px" viewportWidth: 1920, // 设计稿的视口宽度 unitPrecision: 5, // 单位转换后保留的精度 propList: ['*'], // 能转化为vw的属性列表 viewportUnit: 'vw', // 希望使用的视口单位 fontViewportUnit: 'vw', // 字体使用的视口单位 selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。 minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有于1的值会被转换 mediaQuery: false, // 媒体查询里的单位是否需要转换单位 replace: true, // 是否直接更换属性值,而不添加备用属性 exclude: [/node_modules/, /LargeScreen/], // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件,数组中写正则 include: undefined, // 如果设置了include,那将只有匹配到的文件才会被转换 landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape) landscapeUnit: 'vw', // 横时使用的单位 landscapeWidth: 1920, // 横时使用的视口宽度 }, }, }; ``` 此配置可让项目中的px单位自动转换为vw单位,从而实现自适应 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值