VW 转 PX 转换器

专为中国开发者打造的移动端适配神器。支持750设计稿转换、微信小程序rpx、uni-app多端适配、PostCSS自动化配置。

📱 微信小程序🎨 750设计稿🚀 Vue3/uni-app
vw
px

10vw × 1920px ÷ 100 = 192.0px

浏览器视口的宽度(像素),常见值:1920、1440、1366、375

三步快速掌握 VW 转 PX

从蓝湖标注到代码实现,只需三步。适用于Vue3移动端、微信小程序、uni-app跨端项目。

1

选择设计稿基准

750px (蓝湖/即时设计标准)、375px (iPhone标准)、1920px (PC端)。微信小程序默认750rpx = 屏幕宽度。

2

输入VW值或设计稿PX

从蓝湖复制的像素值可直接换算。支持小数点精确计算,确保UI还原度100%。

3

复制代码直接使用

一键复制CSS代码。配合PostCSS自动转换,或在Vue3/uni-app中直接使用。

📱 微信小程序rpx与vw完美互转

小程序开发必备技能:rpx、vw、px三种单位的转换关系。基于750rpx设计稿标准。

rpx转换原理

750rpx = 屏幕宽度 = 100vw

微信小程序规定屏幕宽度固定为750rpx,所有设备自动适配

1rpx=0.133333vw
1vw=7.5rpx
iPhone 6 (375px)=750rpx

WXML小程序实战代码

微信开发者工具中的rpx会自动转换,无需手动计算

/* 小程序样式 - 基于750rpx设计稿 */
.container {
  width: 750rpx;        /* 全屏宽度 */
  padding: 30rpx;       /* = 4vw */
  font-size: 28rpx;     /* = 3.73vw */
}

.button {
  width: 200rpx;        /* = 26.67vw */
  height: 80rpx;        /* = 10.67vw */
  border-radius: 40rpx; /* = 5.33vw */
}

/* 在iPhone 6上:
   750rpx = 375px (屏幕宽度)
   1rpx = 0.5px */

💡 小程序开发建议

  • 从蓝湖/即时设计获取的750px设计稿标注,可直接改为rpx使用
  • 字体大小建议范围:24rpx-32rpx (16px-21px 实际显示)
  • 1px物理边框问题:使用 1rpx 在所有设备上都显示为物理1px

🎨 750px设计稿一键适配方案

蓝湖/即时设计/Figma标注的750px设计稿,如何完美转换为vw实现100% UI还原

快速转换公式

vw = (设计稿px ÷ 750) × 100

750px设计稿标准公式

示例计算:

• 设计稿 100px → (100÷750)×100 = 13.33vw

• 设计稿 375px → (375÷750)×100 = 50vw

• 设计稿 30px → (30÷750)×100 = 4vw

🎯 设计师协作技巧

让设计师提供750px宽度的设计稿,开发时可以快速心算:100px约等于13.3vw,200px约等于26.7vw

SCSS750设计稿转换函数

创建SCSS函数,蓝湖标注值直接转vw,提升开发效率

// 基于750px设计稿的vw转换函数
@function vw($px) {
  @return ($px / 750) * 100vw;
}

// 使用示例 - 蓝湖标注值直接填入
.header {
  width: vw(750);      // 100vw 全屏
  height: vw(88);      // 11.73vw 导航栏
  padding: 0 vw(30);   // 左右各4vw
  font-size: vw(28);   // 3.73vw 标题
}

.card {
  width: vw(345);      // 46vw 卡片宽度
  margin: vw(15);      // 2vw 间距
  border-radius: vw(16); // 2.13vw 圆角
}

// 编译后:
// .card { width: 46vw; margin: 2vw; }

🔧蓝湖/即时设计协作流程

① 设计师交付

在蓝湖上传750px宽度设计稿

② 开发标注

复制标注的px值,用公式或工具转vw

③ 代码实现

CSS中使用vw单位,实现完美适配

🚀 Vue3 + Vant移动端完美适配

Vue3组合式API + Vant UI + vw单位,打造丝滑的移动端体验

Vue3响应式布局组件

使用vw单位构建弹性布局,自动适配所有移动设备

<template>
  <div class="home-page">
    <van-nav-bar title="首页" class="nav-bar" />

    <div class="banner">
      <van-swipe :autoplay="3000">
        <van-swipe-item v-for="item in banners">
          <img :src="item.image" class="banner-img" />
        </van-swipe-item>
      </van-swipe>
    </div>

    <div class="product-grid">
      <van-card v-for="product in products"
        :title="product.name"
        :price="product.price"
        class="product-card" />
    </div>
  </div>
</template>

<style scoped lang="scss">
// 基于750px设计稿
.nav-bar {
  height: 11.73vw; // 88px
  font-size: 4.8vw; // 36px
}

.banner {
  height: 50vw; // 375px
  margin: 4vw; // 30px
  border-radius: 2.67vw; // 20px
}

.product-grid {
  padding: 4vw; // 30px
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.67vw; // 20px
}

.product-card {
  border-radius: 2.13vw; // 16px
  padding: 2.67vw; // 20px
}
</style>

📦Vant组件自定义主题

// vant.config.js
export default {
  // 基于750px设计稿的Vant主题
  van-nav-bar-height: '11.73vw',
  van-button-default-height: '10.67vw',
  van-button-default-font-size: '3.73vw',
  van-card-padding: '2.67vw',
  van-cell-font-size: '3.73vw',
  van-field-input-text-size: '3.73vw'
};

思源黑体响应式设置

/* 中文字体优化 */
body {
  font-family: 'Source Han Sans CN',
               'PingFang SC',
               'Microsoft YaHei', sans-serif;
  font-size: clamp(14px, 3.73vw, 18px);
  line-height: 1.6;
  letter-spacing: 0.02em;
}

h1 {
  font-size: clamp(20px, 5.33vw, 28px);
  font-weight: 500; /* 思源黑体推荐 */
  line-height: 1.4;
}

.paragraph {
  font-size: clamp(14px, 3.73vw, 16px);
  text-align: justify; /* 中文两端对齐 */
}

💡 Vue3移动端最佳实践

  • • 使用 clamp() 限制字体大小范围
  • • Vant组件通过CSS变量统一设置vw单位
  • • 图片使用 max-width: 100% 防止溢出
  • • 思源黑体在移动端字重建议400-500,不建议700

⚡ PostCSS自动化px转vw配置

使用postcss-px-to-viewport,写px代码自动转vw,大幅提升开发效率

ViteVite项目配置

// vite.config.js
import postcsspxtoviewport from 'postcss-px-to-viewport';

export default {
  css: {
    postcss: {
      plugins: [
        postcsspxtoviewport({
          viewportWidth: 750,  // 设计稿宽度
          unitPrecision: 5,    // 精确到5位小数
          viewportUnit: 'vw',  // 转换单位
          selectorBlackList: ['.ignore', '.van'],
          // 忽略Vant组件库
          minPixelValue: 1,    // 小于1px不转换
          mediaQuery: false,   // 媒体查询不转换
          exclude: [/node_modules/] // 排除第三方
        })
      ]
    }
  }
}

WebpackWebpack项目配置

// vue.config.js 或 webpack.config.js
module.exports = {
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          require('postcss-px-to-viewport')({
            viewportWidth: 750,
            unitPrecision: 5,
            viewportUnit: 'vw',
            selectorBlackList: [
              '.van',        // Vant UI
              '.el',         // Element UI
              '.ignore'      // 自定义忽略类
            ],
            propList: ['*'], // 所有属性都转换
            exclude: [
              /node_modules/vant/,  // 排除Vant
            ]
          })
        ]
      }
    }
  }
}

✅ 使用前后对比

开发时编写:

width: 345px; margin: 15px;
↓ PostCSS自动转换

编译后输出:

width: 46vw; margin: 2vw;

🛡️ 忽略转换技巧

如果某个px值不想被转换,有3种方法:

1. 大写PX: border: 1PX solid

2. 注释忽略: width: 100px; /*no*/

3. 类名黑名单: .ignore { width: 100px }

🔧 uni-app/Taro多端适配统一方案

一套代码,同时适配微信小程序、H5、App、支付宝小程序等多个平台

uni-app单位换算关系

uni-app规范: 750rpx = 屏幕宽度

与微信小程序保持一致,跨平台编译时自动转换

H5平台编译:

rpx → vw (自动)

小程序平台:

rpx → rpx (保持不变)

App平台:

rpx → 动态计算px

uni-app跨端样式写法

<template>
  <view class="container">
    <view class="header">首页</view>
    <view class="content">
      <!-- 统一使用rpx,自动跨端适配 -->
    </view>
  </view>
</template>

<style lang="scss">
// 所有平台统一使用rpx
.container {
  width: 750rpx;      // H5→100vw 小程序→750rpx
  padding: 30rpx;     // 自动适配
}

.header {
  height: 88rpx;      // 导航栏
  font-size: 32rpx;   // 标题
  line-height: 88rpx;
}

.content {
  padding: 30rpx;
  font-size: 28rpx;   // 正文
}

/* 条件编译 - 不同平台差异化处理 */
/* #ifdef H5 */
.header {
  position: fixed;    // H5固定导航
  top: 0;
}
/* #endif */

/* #ifdef MP-WEIXIN */
.header {
  padding-top: 44rpx; // 微信小程序状态栏
}
/* #endif */
</style>

💡uni-app/Taro多端适配最佳实践

✅ 推荐做法

  • • 统一使用rpx单位,让框架自动转换
  • • 750rpx设计稿标注直接对应rpx值
  • • 使用条件编译处理平台差异
  • • 字体大小范围: 24rpx-32rpx

⚠️ 避免踩坑

  • • 不要混用rpx和vw,会导致平台差异
  • • 不要用px做响应式,只用于固定尺寸
  • • H5端默认会转vw,无需手动配置
  • • 安全区域适配使用uni提供的API

📐 阿里/腾讯/字节移动端适配方案

学习大厂移动端适配最佳实践,vw、rem、flexible方案全面解析

🟠

淘宝flexible方案

核心思路:

动态设置根元素font-size,配合rem单位实现适配

document.documentElement.style.fontSize = (clientWidth / 10) + 'px'

现状:

已不推荐使用,建议改用vw方案

🔵

腾讯Alloy方案

核心思路:

纯vw方案,不依赖JS,性能更优

1vw = 1% 视口宽度100vw = 屏幕宽度

优势:

原生CSS支持,无需引入库,兼容性好

🟣

字节跳动方案

核心思路:

vw + rem混合,兼顾响应式和可控性

html {font-size: calc(100vw / 7.5)}

适用:

需要支持用户字体缩放的场景

🏆2025年推荐方案: 纯vw方案 + clamp()

为什么选择vw方案?

  • 浏览器原生支持,无需JS
  • 性能优于flexible方案
  • 配合clamp()限制边界值
  • PostCSS自动转换,开发便捷
/* 推荐写法 */
.text {
  /* 最小14px,最大18px,中间根据屏幕宽度响应 */
  font-size: clamp(14px, 3.73vw, 18px);
}

.container {
  /* 容器宽度: 最小300px,最大1200px */
  width: clamp(300px, 90vw, 1200px);
  margin: 0 auto;
}

.gap {
  /* 间距: 最小10px,中间响应,最大30px */
  gap: clamp(10px, 2.67vw, 30px);
}

常见问题解答

中国开发者最关心的8个VW转PX问题

750px设计稿如何快速转换为vw?

使用公式: vw = (设计稿px ÷ 750) × 100。例如设计稿上的100px,计算为 (100÷750)×100 = 13.33vw。建议使用SCSS函数或PostCSS自动转换,无需手动计算。

快速记忆:

100px≈13.3vw, 200px≈26.7vw, 375px=50vw, 750px=100vw

微信小程序rpx和vw怎么互转?

微信小程序规定 750rpx = 屏幕宽度 = 100vw。转换公式: 1rpx = 0.133333vw, 1vw = 7.5rpx。实际开发中,小程序用rpx,H5用vw,uni-app会自动处理转换。

实用技巧:

750px设计稿标注可直接改为rpx使用,无需计算

PostCSS转换如何排除Vant组件库?

在postcss-px-to-viewport配置中添加 selectorBlackList: ['.van'],所有以.van开头的类名都不会被转换。同时配置 exclude: [/node_modules\/vant/] 排除Vant源文件。

selectorBlackList: ['.van', '.el', '.ignore']

uni-app多端单位如何统一?

uni-app推荐统一使用rpx单位。H5端编译时会自动转换为vw,小程序保持rpx,App端动态计算。750rpx设计稿标注值可直接作为rpx值使用。不同平台的特殊处理用条件编译 /* #ifdef H5 */ 来实现。

如何解决1px物理像素边框问题?

移动端Retina屏1px边框会显示较粗。方案:

  • 使用transform: scale(0.5)缩小边框
  • 微信小程序直接用1rpx,会自动处理为物理1px
  • 使用box-shadow模拟: box-shadow: 0 0 0 0.5px #ddd

蓝湖标注的px如何自动转vw?

使用PostCSS的postcss-px-to-viewport插件。配置好后,从蓝湖复制的px值可直接写在CSS中,编译时自动转为vw。或者使用SCSS函数 @function vw($px),调用时 width: vw(100) 即可。

阿里/腾讯用的是什么适配方案?

淘宝最初使用flexible方案(rem+JS),现已不推荐。腾讯Alloy团队推荐纯vw方案。字节跳动使用vw+rem混合方案。2025年行业推荐: 纯vw方案 + clamp()限制边界,性能好、兼容性强、无需JS。

思源黑体在移动端如何设置?

思源黑体(Source Han Sans)是中文网页的最佳选择。移动端设置:

font-family: 'Source Han Sans CN', 'PingFang SC',
             'Microsoft YaHei', sans-serif;
font-size: clamp(14px, 3.73vw, 18px);
font-weight: 400; /* 或500,不建议700 */
line-height: 1.6;
letter-spacing: 0.02em; /* 中文建议略微增加字距 */

相关工具

VW 转 MM

将视口宽度转换为毫米

基于视口大小

VW 转 IN

将视口宽度转换为英寸

基于视口大小

VW 转 REM

将视口宽度转换为REM单位

基于根字体大小

VW 转 EM

将视口宽度转换为EM单位

基于字体大小

开始使用VW转PX转换器

支持750设计稿、微信小程序、uni-app、Vue3移动端,一站式解决所有单位转换需求

立即转换

已为 50,000+ 中国前端工程师提供服务 | 完全免费 | 无需注册