前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >面试官:px、em、rem、vw、rpx 之间有什么区别?

面试官:px、em、rem、vw、rpx 之间有什么区别?

作者头像
万少
发布2025-02-11 14:11:10
发布2025-02-11 14:11:10
8000
代码可运行
举报
运行总次数:0
代码可运行

面试官:px、em、rem、vw、rpx 之间有什么区别?

单位名称

说明

web

小程序

px

绝对单位。代表像素数量

支持

支持

em

相对单位。相对于父元素的字体大小

支持

支持

rem

相对单位。相对于页面根标签 html 的字体大小

支持

不支持

vw

相对单位。相对于视口的宽度大小 100vw 等于视口的宽度

支持

支持

rpx

相对单位。 小程序中独有 , 750rpx 等于视口的宽度

不支持

支持

屏幕适配的原理

做移动端布局时,希望页面可以做到用户的手机屏幕越大、看见的页面元素就越大。因此,只能使用相对长度单位。

实际开发中,rem、vw、rpx 是我们比较常用的相对长度单位。

而使用它们的核心思想,就在于要搞懂

设计稿!!! 大小是 375px !!!

换算的比例

代码语言:javascript
代码运行次数:0
复制
1rem 等于 多少 px  设计稿
1vw 等于 多少 px 设计稿
1rpx 等于多少 px 设计稿

或者是和屏幕宽度的对应关系

代码语言:javascript
代码运行次数:0
复制
多少 rem 等于屏幕的宽度
多少 vw 等于屏幕的宽度
多少 rpx 等于屏幕的宽度

在搞清楚以上信息后,后续只要在不同的换算工具中代入以上的比例关系即可

image-20220209120828267
image-20220209120828267

普通项目中使用

原生的 html、css、JavaScript 直接运行的项目

直接在 vscode 中安装对应的插件即可

rem

需要引入外部 js 来动态处理 html 的字体大小 如 flexible.js

image-20220207195101823
image-20220207195101823

settings.json

代码语言:javascript
代码运行次数:0
复制
  "cssrem.rootFontSize": 10 /* 10  10rem=屏幕的宽度   */

vw

image-20220207195608620
image-20220207195608620

settings.json

代码语言:javascript
代码运行次数:0
复制
"px2vw.width": 750 /* 设计稿的宽度 */

rpx

image-20220207200029711
image-20220207200029711

setting.json

代码语言:javascript
代码运行次数:0
复制
"px-to-rpx.baseWidth": 375,/* 设计稿的宽度 */

基于 webpack 的项目使用

基于 webpack 打包的前端项目

webpack 有工具, 可以写 px, 自动转 rem youzan.github.io/vant/#/zh-C…

rem

安装 lib-flexible

代码语言:javascript
代码运行次数:0
复制
yarn add lib-flexible   postcss-pxtorem@^5.1.1

引入 main.js

代码语言:javascript
代码运行次数:0
复制
import "lib-flexible";

观察 10rem = 屏幕的宽度

image-20220207200922235
image-20220207200922235

postcss.config.js 中 编辑

代码语言:javascript
代码运行次数:0
复制
module.exports = {
  plugins: {
    'postcss-pxtorem': {
      /*  在设计稿的宽度下 1rem = 多少px 37.5     10rem=屏幕的宽度   */
      rootValue: 37.5,
      propList: ['*'],
    },
  },
};

vw

安装依赖

代码语言:javascript
代码运行次数:0
复制
yarn add postcss-px-to-viewport

postcss.config.js 中配置

代码语言:javascript
代码运行次数:0
复制
module.exports = {
  plugins: {
    'postcss-px-to-viewport': {
      viewportWidth: 100 /* 100 设计稿的宽度 */,
    },
  },
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面试官:px、em、rem、vw、rpx 之间有什么区别?
    • 屏幕适配的原理
    • 普通项目中使用
      • rem
      • vw
      • rpx
    • 基于 webpack 的项目使用
      • rem
      • vw
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档