n***@163.com
n***@163.com
  • 发布:2024-04-08 16:32
  • 更新:2024-04-09 10:48
  • 阅读:193

【报Bug】开发调试的时候 会出现rpx转换为%字样,布局进而错乱

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.5 (21G72) M2

HBuilderX类型: 正式

HBuilderX版本号: 4.08

浏览器平台: Chrome

浏览器版本: 版本 123.0.6312.107(正式版本) (arm64)

项目创建方式: HBuilderX

操作步骤:

我这边必现,没有操作步骤,可提供源代码

预期结果:

布局正常

实际结果:

布局错乱

bug描述:

下载的hello-uniapp 代码,为什么在开发调试的时候 会出现rpx转换为这样的情况?导致布局就乱掉了!!!!

2024-04-08 16:32 负责人:无 分享
已邀请:
JXWang

JXWang

rpx是逻辑像素单位,750rpx等于屏幕宽度,适用于移动端开发,pc端不适用,所以进行pc端开发时可以使用px单位。如果想把rpx转px,可以在源码里正则替换,也可以使用三方已经写好的单位转换库。下面介绍下三方库的用法
项目根目录新增文件 postcss.config.js,内容如下。则在编译时,编译器会自动转换rpx单位为px。

// postcss.config.js  

const path = require('path')  
module.exports = {  
  parser: 'postcss-comment',  
  plugins: {  
    'postcss-import': {  
      resolve(id, basedir, importOptions) {  
        if (id.startsWith('~@/')) {  
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3))  
        } else if (id.startsWith('@/')) {  
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2))  
        } else if (id.startsWith('/') && !id.startsWith('//')) {  
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1))  
        }  
        return id  
      }  
    },  
    'autoprefixer': {  
      overrideBrowserslist: ["Android >= 4", "ios >= 8"],  
      remove: process.env.UNI_PLATFORM !== 'h5'  
    },  
    // 借助postcss-px-to-viewport插件,实现rpx转px,文档:https://github.com/evrone/postcss-px-to-viewport/blob/master/README_CN.md  
    // 以下配置,可以将rpx转换为1/2的px,如20rpx=10px,如果要调整比例,可以调整 viewportWidth 来实现  
    'postcss-px-to-viewport': {  
      unitToConvert: 'rpx',  
      viewportWidth: 200,  
      unitPrecision: 5,  
      propList: ['*'],  
      viewportUnit: 'px',  
      fontViewportUnit: 'px',  
      selectorBlackList: [],  
      minPixelValue: 1,  
      mediaQuery: false,  
      replace: true,  
      exclude: undefined,  
      include: undefined,  
      landscape: false  
    },  
    '@dcloudio/vue-cli-plugin-uni/packages/postcss': {}   
  }  
}

参考文档:宽屏适配指南

JXWang

JXWang

感谢反馈。我试了一下没有复现,hello-uniapp 就能复现吗?看图中好像用了CSS预编译器,是否下载了对应的预编译器插件,提供一下可复现的源代码吧

  • n***@163.com (作者)

    代码我放在

    https://gitee.com/niuting177/hello-bug.git了


    调试这个路径下

    http://localhost:8080/pages/component/view/view

    2024-04-08 20:21

n***@163.com

n***@163.com (作者)

代码我放在
https://gitee.com/niuting177/hello-bug.git了

调试这个路径下
http://localhost:8080/pages/component/view/view

要回复问题请先登录注册