我在一些大屏的项目中,碰见自己电脑写好的样式,但是在大屏中出现了变形。

通过 postcss-px2rem 插件,实现项目的自适应

使用:

** 1、安装包**

npm install postcss-px2rem px2rem-loader --save

2、文件创建
在src目录下创建一个util的工具文件夹,然后创建一个js文件,这里我叫pxtorem.js,文件中写上一下代码

// rem等比适配配置文件
// 基准大小
const baseSize = 16
// 设置 rem 函数
function setRem () {// 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。const scale = document.documentElement.clientWidth / 1920// 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function () {setRem()
}

3、在main.js文件中引入刚刚创建好的文件
import './util/pxtorem'

4、在vue.config.js文件中配置
如果项目中没有这个文件,可以自己手动在根目录下创建一下

// 引入等比适配插件
const px2rem = require('postcss-px2rem')// 配置基本大小
const postcss = px2rem({// 基准大小 baseSize,需要和rem.js中相同remUnit: 16
})// 使用等比适配插件
module.exports = {lintOnSave: true,css: {loaderOptions: {postcss: {plugins: [postcss]}}}
}

通过transform,可用于echarts的项目中

ps:echart中的适应,你也可以用echarts自带的resize,然后对内部的文字字体大小设置一个值,进行变化

<template><div id="app"><div ref="newCatalog" class="newCatalog"><router-view /></div></div>
</template><script>
export default {name: 'App',data() {return {scale: ''}},mounted() {this.setScale()window.addEventListener('resize', this.setScale)},methods: {getScale() {const width = window.screen.widthconst height = window.screen.heightlet ww = window.innerWidth / 1920let wh = window.innerHeight / 1080return ww < wh ? ww : wh},setScale() {this.scale = this.getScale()this.$refs.newCatalog.style.setProperty('--scale', this.scale)}}
}
</script><style lang="scss">
@import '~style/init.scss';#app {width: 100vw;height: 100vh;font-family: Alibaba-PuHuiTi-R, Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;background: url('~assets/images/bg.png');background-size: cover;
}
.newCatalog {--scale: 1;width: 1920px;height: 1080px;background-size: 100% 100%;position: absolute;transform: scale(var(--scale)) translate(-50%, -50%);display: flex;flex-direction: column;transform-origin: 0 0;left: 50%;top: 50%;
}
</style>

通过 postcss-px-to-viewport 插件,实现项目的自适应

文档
vue.config.js 文件同级,建一个 postcss.config.js 的文件

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, // 横屏时使用的视口宽度},},
};

vue尺寸的自适应 大屏自适应相关推荐

  1. 【前端大屏实战1】Vue+Echarts -- 大屏简介初体验 => 大屏自适应缩放解决方案 => 使用transform:scale => 组件化抽离ScaleBox=>【两分钟实现大屏宽高等比例】

    如果累了就冬眠吧,如果睡不着,就接纳暂时的失眠,不强迫自己入睡. 目录 一.大屏简介 1.数据可视化 2.大屏用途 3.大屏效果展示 二.大屏需求分类 1.固定尺寸的"真实"大屏 ...

  2. vue数据大屏自适应屏幕分辨率js

    vue数据大屏自适应屏幕分辨率js 最近在写vue数据大屏的时候想到屏幕分辨率要自适应问题,按照设计图的百分比写感觉太麻烦,宽高甚至字体大小都要用百分比,就在想有没有其他的方案能实现,相信都用过rem ...

  3. vue项目:大屏自适应解决方案(两种)

    css缩放方案: 利用transform:scale 进行适配 推荐使用v-scale-screen 值得注意的是: vue 2.6.2.7 要使用 npm install v-scale-scree ...

  4. 大屏自适应方案之scale

    大屏自适应之前有用过postcss-pxtorem之类的插件,但是插件只针对css样式,在js和vue模板中的样式,还有echarts的属性值都不能经过插件直接转换.要手动分装方法再次调用,就会比较麻 ...

  5. 苹果cmsv10简洁清新漂亮wap+pc自适应大屏免费模板

    模板主题介绍: 模板名称:苹果cmsv10简洁清新漂亮wap+pc自适应大屏免费模板 模板程序:苹果cmsv10 模板类型:wap+pc自适应模板 空间支持:php5.6+mysql 模板颜色:黑白色 ...

  6. vue内解决可视化大屏内百度地图在css transform下缩放位置偏移的问题

    vue内解决可视化大屏内百度地图在css transform下缩放位置偏移的问题* 最近在写可视化大屏的时候发现使用百度地图,在缩放的缩放的时候视角总是往红色框位置缩放,并不在鼠标位置进行视角缩放,查 ...

  7. 大屏自适应文章收藏分享

    Vue 大屏开发自适应 VScode | flexible.js | rem | echarts自适配 - 秦浩铖 - 博客园

  8. 大屏自适应等展示问题

    一.大屏界面自适应问题 因为一开始就用的简单的宽度百分比,高度固定的布局,设计稿1920*1080,所以在非全屏下有些错乱,到笔记本上看更加错乱.后续重新写布局大小工作量太大,所以采用了监听浏览器可视 ...

  9. 【工作笔记】不明确最终像素比的情况下的自适应大屏解决方案

    我也不知道为什么会不明确.....随手一下,方便下次抄 需求:大屏需铺满屏幕,不能出现滚动条,白边,布局错乱等问题. 设计稿为1920*1080 方案1:利用transform的scale直接缩放. ...

最新文章

  1. MFC用代码创建工具栏
  2. eclipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3解决方案...
  3. cc、gcc、g++、CC的区别概括
  4. CoreData 自定义数据类型
  5. 一个Demo学会用Android兼容包新控件
  6. 安全应对MySQL攻击
  7. 有观赏性的c语言程序,设计一个C语言程序,对以孩子链表表示的树计算该树的深度- 一起装修网...
  8. java根据xsd验证json文件_JSON解析器之json schema校验及代码实现
  9. 安卓获取手机唯一码工具类
  10. 阿里云账号登录名修改方法(图文详解)
  11. 博达:经营管理再升级,从选对CRM开始
  12. mysql 每个分类前十名_一文解决所有MySQL分类排名问题
  13. java共享经济项目分享_共享创业项目平台哪个好(分享5个共享创业项目)
  14. ubuntu安装搜狗拼音
  15. 农夫狼羊白菜过河C语言程序,农夫过河(带羊,菜,狼,过河) C语言程序设计流程图...
  16. 科普 | 冬虫夏草为什么那么贵?
  17. iwebshop添加,删除,修改
  18. three.js BIM可视化练习
  19. Eclipse黑色背景保护眼睛设置分享
  20. 如何构建高精度室内定位系统

热门文章

  1. PTA_7-1 2020年12月13日
  2. Sandboxie Plus v0.9.5 / v5.51.5 电脑裸奔沙盘工具箱开源版
  3. win7搭建虚拟pppoe服务器,Win7在桌面建立一个pppoe宽带自动连接器的方法
  4. 年会人名抽奖php,php年会抽奖
  5. 响应式web设计-第一章 HTML5、CSS3及响应式设计入门
  6. 聂受立:汉字你知多少?
  7. NO.66——人工智能学习:python实现一致代价搜索算法
  8. Package org.eclipse.aether.metadata
  9. 分享关于风控反欺诈系统的资料
  10. aaaaaaaaaaA heH heH nuN