SkyWT
加载中
博客 2026 年 10 月 5 日 zh-CN

Apple 官网排版细节鉴赏

每隔一段时间,我就会逛逛 Apple 官网。Apple 作为人机交互的规则制定者,它的网页实现有太多值得我们学习和借鉴的地方。本文中,我梳理了一部分排版细节(并且在看源码的过程中又发现了一些新的细节 😂),与你分享。

定制的 Web 字体

Apple 在 2015 年推出了 SF 系列西文字体(一般使用 SF Pro)和苹方系列中文字体。然而打开 Apple 简体中文官网,可以发现字体栈中第一个是一款名为「SF Pro SC」的字体。

.typography-label:lang(zh-CN) {
  font-family: SF Pro SC,SF Pro Display,SF Pro Icons,PingFang SC,Helvetica Neue,Helvetica,Arial,sans-serif
}

SF Pro SC 是进入网页时会加载的一款网络字体。那就很奇怪了:既然是 Apple 的字体,居然没有在 iOS / macOS 内置;也找不到这款字体的官方公开资料。

事实上,这个字体是 Apple 为简体中文 Web 官网定制的一款非公开字体。下载打开可以发现,其中只包含汉字和部分标点符号,字型和 PingFang SC 完全相同,但进行了一些微调。按照字体栈的设置,西文会 fallback 到 SF Pro Display,因此网络正常的情况下,实际使用的字体通常是:汉字和全角标点使用 SF Pro SC,西文使用 SF Pro Display。

SF Pro SC 可以看成「专门为了和 SF Pro 混排而优化的简体中文字体」。下面是三种字体栈的显示效果对比:

三种字体栈的显示效果对比

可以看到,相较于 PingFang SC,这款 SF Pro SC 主要有两点调整:中文字型更小,全角标点符号字符宽度更窄。为什么要做这种调整呢?

中文字型更小

仔细观察上方截图的第二行 SF Pro Display 和 PingFang SC 的渲染效果,会感觉汉字视觉上比英文大一些。特别是「Mac」的左侧,「买」的高度明显高于 M 字母的高度。这是由于中文和西文字体对空间的使用方式并不相同,单独设计时并不会保证对齐,如果直接混排,视觉上西文就是会看起来更小。

因此 SF Pro SC 基于 PingFang SC 缩小了汉字字型,针对中英文混排进行视觉校正。

我的网站 skywt.cn 使用的思源宋体(Source Han Serif,别名 Noto Serif SC),其实也有类似的处理。这个字体包含的西文部分源于 Source Serif 系列,但西文字符被调整得更大,使得其与中文混排时视觉观感更一致。可以看下图的中英混排文案「换成 iPhone 怎么样」的对比,以 64px 作为基准:

  • 第一行是全部使用 Source Han Serif,中英混排最为协调。
  • 如果将英文部分换成 Source Serif 4,即第三行的样式,会发现英文看起来明显比中文小。注意此时 font size 设置并没有任何改变,都是 64px。
  • 如果要修正这个视觉偏差,需要调大其中的「iPhone」一词至大约 77px,即第二行的样式。此时「iPhone」一词看起来又会偏重。Source Serif 4 字体提供了无极的 weight 和 optical size 调节,需要进行较为复杂的调节才能调整出和第一行 Source Han Serif 相近的效果。

Source Serif 系列字体栈对比

总结来说,为了让中英文混排更加协调,SF Pro SC 的做法是将汉字调小,Source Han Serif 则将西文调大。

全角标点符号字符宽度更窄

Apple 简体中文官网所有的标点符号,看起来都是半角宽度,但查看源码会发现网站并没有使用真正的半角标点符号,而是在字体层面调整全角标点宽度。SF Pro SC 的全角标点符号宽度是字宽的 0.5~0.6 倍。

我认为这个设计主要目的是:保障包含标点的 slogan 阅读体验。Apple 大量使用了含有标点的 slogan,比如上面的「在 Apple 购买 Mac,好处多多。」如果使用全宽的全角标点符号,由于标题字体较大,会导致「购买 Mac」和「好处多多」之间视觉空隙过大,产生不连贯感;而为了视觉统一和字符标准,直接在字体层面对这一展现进行了调整。

更多关于 SF Pro SC 这款字体的探索,可以参考这篇文章:SF Pro SC 是什么字体?

换行控制

避免孤立行

所谓孤立行,指的是某个段落末尾最后一个字正好成为新的一行,这样会让这个段落在视觉上看起来不平衡。在传统的杂志排版规范中都会提到避免孤立行。Apple 网站的处理方式是:段落最后一个词用 nowrap 的 span 包裹保护。

例如环境责任页面的这段文案:

我们已空前接近 Apple 2030 目标,这是我们基于科学制定的宏伟蓝图,立志在全球实现碳足迹净零排放。以 2015 年为基准,我们致力于将自己的温室气体排放量减少 75%,再优先采用以自然为本且符合严格国际标准的解决方案,来抵消剩余的碳排放。

HTML 如下,注意末尾的「碳排放。」进行了保护。这样就不会让最后一行只有「放。」成为孤立行。

<p ...>
  我们已空前接近 Apple 2030 目标,这是我们基于科学制定的宏伟蓝图,
  <br class="large">
  立志在全球实现碳足迹净零排放。以 2015 年为基准,
  <span class="underline">我们致力于将自己的温室气体排放量减少 75%</span>
  ,再优先采用以自然为本且符合严格国际标准的解决方案,来抵消剩余的
  <span class="nowrap">碳排放。</span>
</p>

保护会被换行打断的词语

来看看教育页面的这段文案:

要创造一个更加公正平等的世界,教育至关重要。为此,我们携手众多合作伙伴,与 100 多个国家及地区的求学者建立联系,为教育工作者们提供支持,创造各种校外学习机会,并推动种族平等与公正。当教育的大门能开得更大,每个人就能有更多途径来发挥自身潜能。

这段话的 HTML 是下面这样的。除了末尾的「自身潜能。」是上面提到的避免孤立行的规则,其他的「伙伴。」「教育。」「创造。」「每个人」「发挥」这几个词,你知道为什么要做 nowrap 保护吗?

<p ...>
  要创造一个更加公正平等的世界
  <span class="s-p">,</span>
  <br class="small">
  教育至关重要。为此,我们携手众多合作
  <span class="nowrap">伙伴,</span>
  与 100 多个国家及地区的求学者建立联系,为
  <span class="nowrap">教育</span>
  工作者们提供支持
  <span class="l-p m-rp-s-p">,</span>
  <br class="large">
  <span class="nowrap">创造</span>
  各种校外学习机会,并推动种族平等与公正。当教育的大门能开得更大
  <span class="l-p m-rp-s-p">,</span>
  <br class="large">
  <span class="nowrap">每个人</span>
  就能有更多途径来
  <span class="nowrap">发挥</span>
  <span class="nowrap">自身潜能
    <span class="l-p">。</span>
  </span>
</p>

先提示一下:这段文字的文本对齐方式是 center,容器有三种固定宽度:large 860px,medium 600px,small 330px。原网页在这里,你可以试试探索,看看能否找到答案:www.apple.com.cn/education-initiative/。

揭晓答案:如果我们复制这一段纯文字,在原来的 p 元素里新建一个纯 Text Node,对比三种容器宽度下的表现,就会发现:

  • large 尺寸:「伙伴」「创造」两个词被换行了;
  • medium 尺寸:「教育」「发挥」被换行了;
  • small 尺寸:「伙伴」「建立」「每个人」被换行了。(其中「伙伴」被保护后,「建立」就被安排到了不换行的位置,因此无需保护)

官网版本与去除换行保护版本的对比

所以在 Apple 制作这个网页的时候,考虑到了在任意一种容器宽度下,段落实际渲染后的排版效果,精确地保护了每行末尾被自动换行打断的词语!

响应式换行控制

在上面的 HTML 里,我们还看到类似 <br class="small"> 这样显式插入的换行符,表示只有在 small 屏幕尺寸会在此处换行。在网站上的短标题文案,有很多地方都通过这种方式进行响应式换行控制。

例如 MacBook Pro 底部的「想升级,时机正正好。」标题:

<h2 ...>
  想升级<span class="s-p">,</span>
  <br class="small">
  <span class="nowrap">时机正正好
    <span class="l-p">。</span>
  </span>
</h2>

因此,在中大尺寸屏幕就会是完整的一行,在小屏幕就会换行显示为两行:

想升级,
时机正正好。

英文产品名中使用不换行空格

这是继承自 Apple.com(英语官网)的做法,所有类似 iPhone 18 Pro Max 这样带空格的产品名,源码中都出现为 iPhone&nbsp;18&nbsp;Pro&nbsp;Max,避免完整的产品名被自动换行打断。

<p>
  iPhone&nbsp;Duo 来了,首款可折叠 iPhone 全新揭幕。上手一展开,就是迄今最薄 iPhone,
  <strong>历来最大 iPhone 显示屏直入眼帘,比 iPhone&nbsp;18&nbsp;Pro&nbsp;Max 足足大了 50%</strong>
  ;另一面的外屏,显示面积高达 iPhone&nbsp;18&nbsp;Pro 的 90% 以上。iOS 也全面重塑,联手带来各种新摆法、新角度,灵动体验花样百出。
  <span class="nowrap">一切</span>
  精彩,都纳入坚固精巧的机身中,轻松装进你口袋。这个 iPhone,不同于任何 iPhone。
</p>

标题居中视觉校正

中文的全角标点符号,主体居于左下角,其他部分都是空白。即使 Apple 的 SF Pro SC 字体的全角标点更窄,和汉字相比,标点视觉中心依然集中于下方或左下角。

对于末尾带标点符号的标题,居中显示时,这会导致视觉偏左,如下图。标题字号越大,这种偏差越明显,特别是上方有居中图标等参照物的情况下。

未进行视觉校正的标题

这类标题需要右移大约 0.5em 才能视觉居中,如下图:

进行了视觉校正的标题

我在 Apple 官网找到至少三种方式实现这种校正,基本思路是:让末尾标点不占用计算宽度,或者人为设置整个标题右移。

  • 对行末标点用 position absolute 的 span 进行包裹。比如 Apple Pay 页面顶部的文案「支付,由 Apple 支招。」末尾的句号。值得注意的是,在 small 情况下「支付,」后会换行,因此这里的逗号用了 <span class="s-p">,</span> 包裹,只有在 small 尺寸会做校正。
  • 将整个标题左侧增加额外 0.5em 的 padding。隐私页面的标题「力保隐私安全,这很 Apple。」可能由于这里做了一个文案由密码占位符保护、随着 scroll 慢慢揭示的效果,因此没法再定制行末标点的 position 属性,所以采用了这个方案。
  • 在标点后加入 margin-right 为 -0.6rem 的不可见 span。iPhone Duo 页面使用了这种方法,例如标题「新面孔加入 iPhone,全场折服。」两个标点后都添加了 <span class="center-symbol"></span>。

中文与西文字符间的空距

中文与西文字符间的空距是老生常谈的问题。一般来说,中英文混排时,需要在中文和英文之间加入空距。中文与阿拉伯数字混排也同理。

W3C《中文排版需求》6.3.3 横排的中、西文混排配置中指出:

原则上,汉字与西文字母、数字间使用不多于四分之一个汉字宽的字距或空白。但西文、数字出现在行首或行尾时,则无须加入空白。

大多数专业的排版软件,例如 Microsoft Word,都会自动加入这一空距。Apple 的操作系统内置的文字排版引擎,也会自动加空距(你可以在 Apple 备忘录试试)。然而一直以来 Web 平台并没有完全普及的加空距方式。直到近两年主流浏览器才普及 text-autospace: normal。

Apple 官网使用的方式是加空格。Apple 内部应该是将其作为文案规范,所有文案涉及中英混排的部分,都加入了额外空格。(但偶尔能发现某些临时推出的页面漏了一两个空格。由此可见是人工处理的 😂)

自从注意到这个空格问题后,我看一般的网页里中英文挤在一起会觉得非常难受。如果你也一样,可以试试在浏览器安装 pangu.js。

漢學家稱這個空白字元為「盤古之白」,因為它劈開了全形字和半形字之間的混沌。另有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。

文案本地化

文案的本地化本身并不是一个技术上的问题,但这里我特别想要提及一个 case,我感觉 Apple 在这方面做到了变态的地步。

今年 9 月新发布的 iPhone 18 Pro、Apple Watch 等产品,发售日正好在 9 月 18 日。为了规避政治敏感风险,Apple 中国大陆官网所有日期都经过了特别处理,将「9 月 18 日发售」改为「本月 18 日发售」。其他普通日期则没有处理。据传,发给经销商的宣发材料中也进行了相应处理。可以看这个 9 月 16 日的网页存档。

iPhone 18 Pro 的发售日期文案

总结:职业态度与品牌价值

世界上除了 Apple 还有几个品牌网站能做到这种程度的排版和本地化细节呢?答案是 0 个。Apple 独一无二的品牌价值,正是从这些细节中凝聚的。

从产品细节上,还能够看到产品背后的人的职业态度。我自己平常在使用某些平庸的产品时,经常觉得工作人员也太不认真了,太敷衍糊弄了,甚至太不敬业了。于我而言,我愿意付一定的溢价购买更贵的产品,往往并非由于产品本身有多高的差异化价值,而是因为:我希望买到「怀着认真的职业态度的人」做的产品。

2026 年 10 月 5 日,大约 5 小时前