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

更新 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 关注 分享

要回复文章请先登录注册

嘟嘟灬鳕

嘟嘟灬鳕

如果app端改动代码我需要在那里进行调整呢?需要调整原来的字体大小吗?放大多少倍
2020-10-21 11:57
DCloud_UNI_GSQ

DCloud_UNI_GSQ (作者)

回复 chenli :
2020-10-16 14:45
chenli

chenli

2.9.0+只删除这段是吧
```js
document.addEventListener('DOMContentLoaded', function() {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
```
2020-10-16 11:54