DCloud_UNI_GSQ
DCloud_UNI_GSQ
  • 发布:2020-10-16 11:42
  • 更新:2024-11-05 16:23
  • 阅读:10215

更新 HBuilderX 2.9.0+ 后 rpx(upx)、rem 样式变形的处理办法

分类:uni-app

使用 rem 的部分变形

HBuilderX 2.9.0+ 相关更新:调整根字体大小为系统默认大小与微信小程序平台一致

调整后 rem 默认大小不再为 窗口宽度/20,改为了浏览器(webview)默认的字体大小,一般为 16px

对于历史项目如需不改动代码保持原来的样式可以参考如下操作:

App

编辑 __uniappview.html 文件(路径:/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-app-plus/template/v3/__uniappview.html)

<!DOCTYPE html>  
<html lang="zh-CN">  

  <head>  
    <meta charset="UTF-8" />  
    <script>  
      var __UniViewStartTime__ = Date.now();  
      document.addEventListener('DOMContentLoaded', function() {  
          document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'  
      })  
      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||  
        CSS.supports('top: constant(a)'))  
      document.write(  
        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +  
        (coverSupport ? ', viewport-fit=cover' : '') + '" />')  
    </script>  
    <title>View</title>  
    <link rel="stylesheet" href="view.css" />  
  </head>  

  <body>  
    <div id="app"></div>  
    <script src="__uniappes6.js"></script>  
    <script src="view.umd.min.js"></script>  
    <script src="app-view.js"></script>  
  </body>  

</html>

H5

项目内增加 template.h5.html 文件,并配置在 manifest.json -> h5 内 `"template" : "template.h5.html"

<!DOCTYPE html>  
<html lang="zh-CN">  

    <head>  
        <meta charset="utf-8">  
        <meta http-equiv="X-UA-Compatible" content="IE=edge">  
        <title>  
            <%= htmlWebpackPlugin.options.title %>  
        </title>  
        <script>  
            document.addEventListener('DOMContentLoaded', function() {  
                document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'  
            })  
            var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))  
            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')  
        </script>  
        <link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />  
    </head>  

    <body>  
        <noscript>  
            <strong>Please enable JavaScript to continue.</strong>  
        </noscript>  
        <div id="app"></div>  
        <!-- built files will be auto injected -->  
    </body>  

</html>

使用 rpx(upx) 的部分变形

HBuilderX 2.9.0+ 还新增了 rpx(upx) 的范围配置,如因 rpx(upx) 在宽屏的处理问题异常,可以设置 rpxCalcMaxDeviceWidth 为 99999,具体参考:

  • 【重要】App平台、H5平台 新增 rpx(upx) 配置,默认限定了 rpx(upx) 生效的最大屏幕宽度为 px。可在 pages.json -> globalStyle 配置 rpxCalcMaxDeviceWidth、rpxCalcBaseDeviceWidth、rpxCalcIncludeWidth 等参数 详情
0 关注 分享

要回复文章请先登录注册

膨胀的木鱼

膨胀的木鱼

呔 2024年了,居然还能碰到新版hbuildx rem失效
2024-11-05 16:23
3***@qq.com

3***@qq.com

旧项目升级最新版本hbx编译,样式缩小,在 pages.json -> globalStyle ->rpxCalcMaxDeviceWidth 为 99999可以解决
2022-01-07 15:43
3***@qq.com

3***@qq.com

回复 4***@qq.com :
请问你解决了吗?我刚升级到3.2.9也出现页面变大变形的问题了
2021-11-13 21:43
alexbai

alexbai

按照您说的,版本2.9.8,在chrome调试ipad可以正常缩放,但是到真机ipad后,是uni原生组件,tabbar和顶部搜索组件,没有按比例缩放,还是非常小
2021-05-31 14:54
DCloud_UNI_GSQ

DCloud_UNI_GSQ (作者)

回复 4***@qq.com :
建议你单独发帖详细描述一下
2021-01-07 15:54
4***@qq.com

4***@qq.com

回复 DCloud_UNI_GSQ :
宽度都没问题 都是ipad横屏模式下 设置99999就是高度超过屏幕高度 需要下滑才能展示完,设置0就是屏幕高度没有使用完,下面太空
2021-01-07 10:42
4***@qq.com

4***@qq.com

回复 DCloud_UNI_GSQ :
upx ipad使用的横屏
2021-01-07 09:49
DCloud_UNI_GSQ

DCloud_UNI_GSQ (作者)

回复 4***@qq.com :
你是r/upx异常还是rem异常?
2021-01-06 15:36
4***@qq.com

4***@qq.com

更新至2.9以上页面变大变形 rpxCalcMaxDeviceWidth设置99999没用 设置为0页面被整体变小,包括字体,请问怎么处理
2021-01-06 15:28
DCloud_UNI_GSQ

DCloud_UNI_GSQ (作者)

回复 夜与蚊 :
仔细确认一下,帖子中描述的现象和方案和你的是否一致
2021-01-04 14:25