关于将px转换为vw vh的解决方案

在前端开发中,vw和vh是基于视口的动态单位,用于创建响应式布局。本文介绍了如何在Vue项目中利用.postcssrc.js配置postcss-px-to-viewport插件,将px单位自动转换为vw和vh,以实现更灵活的布局。该解决方案能够帮助开发者在享受px布局便利的同时,利用vw、vh实现视口适应。
摘要由CSDN通过智能技术生成

什么是vw(Viewport Width)和vh(Viewport Height)?
  vw和vh是前端开发中的一个动态单位,是一个相对于网页视口的单位。
  系统会将视口的宽度和高度分为100份,1vw占用视口宽度的百分之一,1vh占用视口高度的百分之一。
  vw、vh和百分比不同的是,百分比永远都是以父元素为参考,而vw、vh是以视口作为参考。

结论:vw、vh是一个动态的单位,会随着视口的变化而变化(相对单位)。

我个人在做Vue项目的时候,一边想用vw、vh进行布局,一边又觉得px布局方便,因为蓝湖上边的切图是直接有视图的px大小。

所以就想如果有一个方案可以解决px转换为vw vh就太好不过了,我这边是直接在**.postcssrc.js**里边进行配置,下边是我的代码,大家可以参考一下,有问题请指出问题

  1. npm i postcss-px-to-viewport -D
  2. 在项目根目录下添加.postcssrc.js文件
  3. 添加如下配置:
const path = require('path');
module.exports = ({ file }) => {
  const designWidth = file.dirname.includes(path.join('node_modules', 'vant')) ?  1366 : 1920;
	  return {
	    plugins: {
	      autoprefixer: {},
	      "postcss-px-to-viewport": {
	      unitToConvert: "px", // 要转化的单位
	      viewportWidth: designWidth, // UI设计稿的宽度
	      unitPrecision: 6, // 转换后的精度,即小数点位数
	      propList: ["*"], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
	      viewportUnit: "vw", // 指定需要转换成的视窗单位,默认vw
	      fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位,默认vw
	      selectorBlackList: ["wrap"], // 指定不转换为视窗单位的类名,
	      minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
	      mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
	      replace: true, // 是否转换后直接更换属性值
	      exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
	      landscape: false // 是否处理横屏情况
	      }
	    }
	  }
	}

添加完配置之后需要重新运行
这个方案可以在我的Vue项目中直接把px单位转换为vw、vh

转载:https://www.cnblogs.com/ljyn/p/15229148.html

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值