uni-app 低版本安卓无法给根节点设置字体大小

uni-app 低版本安卓无法给根节点设置字体大小

项目信息 详情
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 win10
HBuilderX类型 正式
HBuilderX版本号 4.17
手机系统 Android
手机系统版本 Android 7.1.1
手机厂商 OPPO
手机机型 OPPOA77
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

:root {
font-size: 0.1333333vw;
}
html{
font-size: 0.1333333vw;
}

预期结果:

  • rem生效

实际结果:

  • rem不生效

bug描述:

无法给根节点设置字体大小


更多关于uni-app 低版本安卓无法给根节点设置字体大小的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 低版本安卓无法给根节点设置字体大小的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 开发中,如果你在低版本的 Android 设备上遇到无法给根节点设置字体大小的问题,可能是由于以下几个原因导致的:

1. viewport 单位兼容性问题

在低版本的 Android 设备上,viewport 单位(如 vw, vh, vmin, vmax)可能不被完全支持,导致根节点的字体大小设置无效。

解决方案: 使用 rem 单位来替代 viewport 单位。你可以通过在 App.vuemounted 钩子中动态计算根节点的字体大小。

// App.vue
export default {
  mounted() {
    this.setRootFontSize();
    window.addEventListener('resize', this.setRootFontSize);
  },
  methods: {
    setRootFontSize() {
      const screenWidth = window.innerWidth;
      const baseSize = 16; // 基准字体大小,可以根据需要调整
      const fontSize = (screenWidth / 375) * baseSize; // 375 是设计稿的宽度
      document.documentElement.style.fontSize = fontSize + 'px';
    }
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.setRootFontSize);
  }
}

2. CSS 样式优先级问题

在某些情况下,CSS 样式可能被其他更高优先级的样式覆盖,导致根节点的字体大小设置无效。

解决方案: 确保根节点的字体大小设置具有足够的优先级。你可以使用 !important 来强制应用样式。

/* App.vue */
:root {
  font-size: 16px !important;
}

3. 安卓 WebView 的兼容性问题

低版本的 Android 设备可能使用较旧的 WebView,这些 WebView 可能对某些 CSS 属性的支持不完全。

解决方案: 确保你使用的是最新的 WebView。你可以通过 uni-appmanifest.json 配置来指定最低支持的 Android 版本。

// manifest.json
{
  "app-plus": {
    "android": {
      "minSdkVersion": 21 // 最低支持的 Android 版本
    }
  }
}

4. uni-app 框架的 Bug

如果你使用的是较旧的 uni-app 版本,可能存在一些已知的 Bug,导致在低版本 Android 设备上无法正确设置根节点的字体大小。

解决方案: 升级到最新的 uni-app 版本,以确保问题已经修复。

npm install [@dcloudio](/user/dcloudio)/uni-app[@latest](/user/latest)
回到顶部