微信小程序:列表项上同样的css样式在IOS上字体大小不一样

一、问题描述

偶然看到一个奇怪的现象,在IOS上微信小程序的一个列表(

列表项应用了相同的CSS类),却出现了不同大小的字:

二、问题排查

1.Android设备及开发者工具显示正常

2.iPhone 6plus (IOS 12.5.7版本)显示正常

3.iPhone 12(IOS 16.3)版本显示异常(出现了不同大小的字)

原因分析: ‌

(1)Webkit 内核自动调整字体‌: iOS 的 Webkit 内核会根据容器宽度自动缩放字体,导致相同样式在不同容器中显示差异。

‌(2)单位使用不统一‌: 混合使用 px 和 rpx(如部分样式固定为 px),导致响应式适配失效。

(3)字体继承或覆盖问题‌: 未显式声明字体样式,部分文本节点继承了系统默认字体或父级容器的限制性样式47。

‌(4)媒体查询冲突‌: 不同屏幕尺寸的媒体查询未覆盖全部场景,特定分辨率下触发意外样式覆盖

由于是同一个列表,列表项使用了相同的css样式类,因此有可能是因为OS 的 Webkit 内核自动调整字体‌导致。

三、解决方案

在页面或者组件中禁用 Webkit 字体缩放:

复制代码
-webkit-text-size-adjust: none; /* 强制按实际字号渲染 */
相关推荐
梦醒沉醉1 小时前
3、CSS入门——CSS选择器
css
Z兽兽7 小时前
行内块元素在垂直方向上对齐问题
css·html·css3
_瑞8 小时前
APM_OOMDetector
ios
秋雨梧桐叶落莳8 小时前
【iOS】从源码深入理解RunLoop机制
macos·ios·objective-c·cocoa·cocoapods·uikit
小幸运2489 小时前
Vue.js 在博客平台中为何采用响应式系统而非直接操作
css
烂蜻蜓9 小时前
Flask入门教程(二十七):Session Interface API——自定义Session存储后端
网络·ios·flask
用户380341658829710 小时前
VideoToolbox 硬编解码的十个坑:为什么它几乎从不报错
ios
bcbnb10 小时前
Flutter-Notebook代码混淆:Android与iOS平台安全配置
后端·ios
dsyuan00110 小时前
基于 Vue3 + ElementPlus 极简搭建仿钉钉流程设计器,简洁架构、极易扩展,纯div+css布局
css·架构·钉钉
2501_9151063211 小时前
第一次开发 iPhone App,可能碰到的问题,解决办法
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程