安卓手机系统设置字体大小后与APP以及web端字体大小问题

安卓手机系统设置字体大小后与APP以及web端字体大小问题

最近在做一些有关html和App的一些混合式开发,在测试过程中发现,android手机系统设置了字体大小,app应用中和web服务端的页面(也就是html界面)字体都会有变化。下面我就在这次开发者中遇到的相关问题进行一个小小的总结。

1.情况发生,设置系统字体之后的前后对比
这里写图片描述
这里写图片描述
是不是发现字体变化还是很大的呢!

web端html和入app中,有些会出现兼容问题,有些机子并不会出现兼容问题。实际开发中,对于android的同学来说,只要有超过三种有这种问题就需要进行解决这个问题。小编在网络上找了很多的资料,发现,网络就是一个大杂烩,什么都有,但是有用的却很少,如何解决这个问题呢?其实并没有那么麻烦。

2.问题研

uni-app 是一个使用 Vue.js 开发所有前应用的框架,它允许开发者编写一次代码,然后发布到iOS、AndroidWeb(包括微信小程序)等平台。在 uni-app 中,`app.vue` 是应用的根组件,而 `onLaunch` 是生命周期钩子,用于应用启动之后执行。 在 `onLaunch` 中设置 `document.documentElement.style.fontSize` 是为了定义应用的基本字体大小。但有时候,uni-app 内部可能在某些阶段重新设置了文档的字体大小,比如为了适配不同屏幕或者是为了满足一些默认样式的要求。 如果你在 `onLaunch` 中设置字体大小后发现被覆盖,你可以尝试以下方法来解决: 1. **使用 `:root` 伪类变量**: 在 CSS 中使用 `:root` 伪类来设置一个全局变量,这样可以在整个应用中统一修改字体大小。 ```css :root { --fontSize: 20px; /* 设置一个自定义的变量 */ } ``` 然后在 `onLaunch` 中使用 JavaScript 来动态设置根元素的样式: ```javascript onLaunch: function() { document.documentElement.style.setProperty('--fontSize', '20px'); } ``` 在其他样式表中使用这个变量: ```css body { font-size: var(--fontSize); } ``` 2. **使用 vue.config.js 配置**: 在项目的 `vue.config.js` 文件中添加自定义的 CSS 预处理器,这样可以在全局范围内覆盖默认的样式。 ```javascript module.exports = { css: { loaderOptions: { postcss: { plugins: [ require('postcss-pxtorem')({ rootValue: 16, // 默认根字体大小 propList: ['*'] // 需要转换的属性 }) ] } } } } ``` 3. **使用 `hid` 属性**: 在 `App.vue` 中为 `manifest.json` 添加 `config` 字段,并使用 `hid` 属性来禁止系统默认样式: ```javascript { "app-plus": { "deviceReadyInit": true, "hardwareBackButton": false, "fullScreen": true, "statusBar": { "titleNView": false }, "distributeBackgroundAssets": false, "subNVues": { "default": "auto", "multiWindow": { "enable": true, "waiting": true } }, "config": { "titleBar": false, "statusbar": false, "navBar": false, "statusBarColor": "#ffffff", "hardwareAccelerated": true, "renderer": "webview" } } } ``` 请注意,以上方法可能需要结合你的实际项目情况调整。如果问题依旧存在,可能需要检查是否有其他框架或插件在内部修改了样式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值