You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何WKWebKit字体与iOS UILabel字体显示大小存在差异?

问题原因及解决方案

核心原因有两个:

  • 单位不匹配:UILabel设置的字号单位是点(pt),而CSS中font-size默认单位是像素(px)。iOS设备存在屏幕缩放因子(@2x、@3x),比如@3x屏幕下1pt=3px,你设置的50px实际仅相当于约16.7pt,远小于UILabel的50pt,所以显示大小差异明显。
  • 样式未生效:你写的<span style="font-size: \(fontSize)"></span>是个空标签,没有包裹实际的HTML内容,这个样式根本没应用到<p>和<a>元素上,等于白设置。

修正方案:

  1. 统一单位:在CSS里明确使用pt作为字号单位,和UILabel的单位对齐。
  2. 正确应用样式:把HTML内容包裹到设置了样式的标签里,或者用全局样式定义。

比如修改代码如下:

override func viewDidAppear(_ animated: Bool) {
    let htmlStr = """        
    <p><a href="https://www.google.com">WebView-Button-size-50</a></p>
    """
    let fontSize = 50
    // 用span包裹内容,同时指定pt单位
    let fontSetting = "<span style=\"font-size: \(fontSize)pt\">\(htmlStr)</span>"
    webView.loadHTMLString(fontSetting, baseURL: nil)
    webView.allowsBackForwardNavigationGestures = true
}

或者更规范的方式,用

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 16:05:38