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

macOS Mojave下Safari渲染Lato字体(12-16px)垂直拉伸问题求助

解决macOS Mojave非Retina屏Safari渲染Lato字体垂直拉伸的问题

我之前也碰到过几乎一模一样的问题,Mojave下Safari 13在12-16px字号的Lato字体确实会出现诡异的垂直拉伸,给你几个实测有效的解决思路:

  • 升级Google Fonts加载语法
    你原来用的是旧版Google Fonts链接,换成CSS2新语法,明确指定字体格式和加载策略,能大幅改善Safari的渲染稳定性:

    <link href='https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;0,900;1,400;1,700&display=swap' rel='stylesheet'>
    

    新语法会优先加载woff2格式字体,display=swap还能避免字体加载时的闪烁,同时让Safari的字体渲染引擎更准确地解析字体文件。

  • 针对非Retina屏定制渲染规则
    Mojave的Safari在非Retina屏上对antialiased的处理存在bug,换成subpixel-antialiased并配合媒体查询仅在非Retina屏生效:

    @media not all and (min-resolution: 2dppx) {
      body {
        -webkit-font-smoothing: subpixel-antialiased;
        text-rendering: optimizeSpeed;
        -webkit-text-size-adjust: 100%;
      }
    }
    

    这能强制Safari回到更适合低分辨率屏幕的渲染模式,避免垂直拉伸。

  • 添加明确的行高和字体属性
    有时候默认行高或继承的字体属性会和渲染引擎冲突,给文本元素添加明确的属性减少引擎“猜测空间”:

    p, h1, h2, h3, h4, h5, h6 {
      line-height: 1.25;
      font-variant-ligatures: normal;
      font-feature-settings: normal;
    }
    
  • 本地引入字体文件(终极方案)
    如果远程加载的字体还是有问题,直接下载Lato的woff2/woff字体文件,本地用@font-face声明:

    @font-face {
      font-family: 'Lato';
      font-style: normal;
      font-weight: 400;
      src: local('Lato Regular'), local('Lato-Regular'),
           url('/fonts/lato-v24-latin-regular.woff2') format('woff2'),
           url('/fonts/lato-v24-latin-regular.woff') format('woff');
    }
    /* 重复声明700、900及斜体版本 */
    

    本地字体的渲染优先级更高,能避开Google Fonts加载时的解析问题。

问题根源分析

Mojave的Safari 13在非Retina屏上的字体渲染引擎存在特定bug,对远程加载的Lato字体在12-16px字号区间的垂直缩放计算出错。Google官方演示页因为使用了更优化的CSS规则和可能的本地缓存字体,所以没触发这个bug;而Retina屏因为像素密度更高,渲染算法不同,显示就正常了。

内容的提问来源于stack exchange,提问作者beely

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:52:52