rpx和px混用方案

(1)创建一个全局的样式配置文件:

css 复制代码
// styles/variables.scss
:root {
  // 基础字体大小
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-md: 16px;
  --font-size-lg: 18px;
  
  // 响应式间距
  --spacing-xs: 5px;
  --spacing-sm: 10px;
  --spacing-md: 15px;
  --spacing-lg: 20px;
}

// 在小屏设备上使用rpx
@media screen and (max-width: 768px) {
  :root {
    --font-size-xs: 24rpx;
    --font-size-sm: 28rpx;
    --font-size-md: 32rpx;
    --font-size-lg: 36rpx;
    
    --spacing-xs: 10rpx;
    --spacing-sm: 20rpx;
    --spacing-md: 30rpx;
    --spacing-lg: 40rpx;
  }
}

(2)使用

css 复制代码
<template>
  <view class="container">
    <text class="title">标题</text>
    <text class="content">内容</text>
  </view>
</template>

<style scoped>
.title {
  font-size: var(--font-size-lg);
  margin-bottom: var(--spacing-md);
}

.content {
  font-size: var(--font-size-md);
}
</style>

(3)方案优点

i. 提供了统一的样式管理

ii. 易于维护和修改

iii. 可以根据不同设备自动适配

iv. 保持了代码的清晰和可读性

(4)注意事项

i. 在项目入口文件引入全局样式配置

ii. 根据实际设计规范调整具体的尺寸值

iii. 可以根据需要添加更多的断点和变量

iv. 考虑添加更多的设备类型判断(如平板、桌面等)

(5)为什么在小设备上使用rpx,在宽设备上使用px?

这是因为 rpx 和 px 在不同设备上的表现特点不同:

i. rpx 的特点: rpx 是微信小程序引入的响应式单位, 规则是屏幕宽度/750,即以&nbsp;750rpx为基准,在小屏手机上表现良好,因为大多数手机的设计稿都是以750px 为基准,但在大屏设备上会等比放大,导致内容过大。

ii. px的特点:

px是固定单位,不会随屏幕变化,在大屏设备上能保持合适的尺寸,但在小屏设备上可能显示过小

相关推荐
Ankie Wan9 小时前
notepad++技巧:查找和替换:扩展 or 正则表达式
python·正则表达式·notepad++
我们仍要记录那天所学习到的知识11 小时前
在Notepad++中使用NppAtyle插件格式化代码
notepad++
arbboter2 天前
【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明
人工智能·大模型·notepad++·ai助手·ai插件·aicoder·notepad++插件开发
盛夏绽放2 天前
uni-app中获取用户实时位置完整指南:解决权限报错问题
uni-app·notepad++
曲江涛3 天前
爆改 toxml 组件 支持数据双向绑定 解决数据刷新问题
notepad++
arbboter5 天前
【AI插件开发】Notepad++ AI插件开发实践:支持配置界面
人工智能·notepad++·notepad++插件开发·图形化配置界面·windows原生开发·json配置同步·对话框编程
走,带你去玩6 天前
uview1.0 tabs组件放到u-popup中在微信小程序中滑块样式错乱
微信小程序·小程序·notepad++
arbboter7 天前
【AI插件开发】Notepad++ AI插件开发实践:支持多平台多模型
人工智能·notepad++·ai插件·c++插件开发·api认证体系·http客户端优化·模型动态适配
code袁7 天前
基于微信小程序的中医小妙招系统的设计与实现
微信小程序·小程序·notepad++·小程序开发·中医小妙招
arbboter9 天前
【AI插件开发】Notepad++ AI插件开发实践:实现对话窗口功能
人工智能·notepad++·notepad++插件开发·ai对话窗口·异步模型调用·实时输出渲染·动态模型切换