vue3 vite使用postcss-px-to-viewport 实现页面自适应

一、什么是 postcss-px-to-viewport?

postcss-px-to-viewport 是一个 PostCSS 插件,它可以将 px 单位转换为视口单位(vw、vh 或 vmin)。

视口单位是相对于视口尺寸来计算的长度单位,而不是相对于父元素或根元素。这意味着使用视口单位进行布局和样式设置时,元素会随着屏幕尺寸的变化而自适应。

二、为什么要使用 postcss-px-to-viewport?

在移动端开发中,我们通常使用 viewport 来适配不同的屏幕尺寸。但是,在实际开发中,我们经常遇到以下问题:
  • 在不同屏幕尺寸下显示效果不一致。
  • 在高分辨率屏幕上,元素过小或过大。
  • 使用 rem 单位存在兼容性问题。
  • 因此,我们需要一种更加智能、灵活的单位来解决这些问题。而 postcss-px-to-viewport 就是解决这个问题的好方案。

三、如何在 Vue3 中使用 postcss-px-to-viewport?

首先,我们需要安装相关的插件:
javascript 复制代码
npm install postcss-px-to-viewport -D
在vite.config.js文件中进行配置
javascript 复制代码
import vue from '@vitejs/plugin-vue'
// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import postcsspxtoviewport from 'postcss-px-to-viewport'
export default defineConfig({
  // ...
  plugins: [
    vue(),
  ],
    //在这配置插件内容
   css: {
      postcss: {
        plugins: [
          postcsspxtoviewport({
            // 要转化的单位
            unitToConvert: 'px',
            // UI设计稿的大小
            viewportWidth: 1920,
            // 转换后的精度
            unitPrecision: 6,
            // 转换后的单位
            viewportUnit: 'vw',
            // 字体转换后的单位
            fontViewportUnit: 'vw',
            // 能转换的属性,*表示所有属性,!border表示border不转
            propList: ['*'],
            // 指定不转换为视窗单位的类名,
            selectorBlackList: ['ignore-'],
            // 最小转换的值,小于等于1不转
            minPixelValue: 1,
            // 是否在媒体查询的css代码中也进行转换,默认false
            mediaQuery: false,
            // 是否转换后直接更换属性值
            replace: true,
            // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件
            exclude: [],
            // 包含那些文件或者特定文件
            include: [],
            // 是否处理横屏情况
            landscape: false
          }),
        ]
      }
    }
})
重启项目即可实现px转vw
相关推荐
胡斌附体14 分钟前
vue添加loading后修复页面渲染问题
前端·javascript·vue.js·渲染·v-if·异步加载
Dontla24 分钟前
Webpack DefinePlugin插件介绍(允许在编译时创建JS全局常量,常量可以在源代码中直接使用)JS环境变量
运维·javascript·webpack
沐土Arvin1 小时前
深入理解 requestIdleCallback:浏览器空闲时段的性能优化利器
开发语言·前端·javascript·设计模式·html
咖啡の猫2 小时前
JavaScript基础-创建对象的三种方式
开发语言·javascript·ecmascript
MaCa .BaKa2 小时前
38-日语学习小程序
java·vue.js·spring boot·学习·mysql·小程序·maven
outstanding木槿3 小时前
react中安装依赖时的问题 【集合】
前端·javascript·react.js·node.js
小吕学编程3 小时前
Jackson使用详解
java·javascript·数据库·json
霸王蟹3 小时前
React中useState中更新是同步的还是异步的?
前端·javascript·笔记·学习·react.js·前端框架
霸王蟹3 小时前
React Hooks 必须在组件最顶层调用的原因解析
前端·javascript·笔记·学习·react.js
听吉米讲故事4 小时前
Slidev集成Chart.js:专业数据可视化演示文稿优化指南
javascript·信息可视化·数据分析