字体族排版
这段文字用哪一套字,以及系统里找不到那套字时按什么顺序往下退。
- 换一种字体
- 用系统默认的那套字
- 这个字看着不对
- 字体族
- 字型家族
- 字体家族
示例
把说不清的东西,变成能说清的词。
font-family: var(--font-sans);
Web / iOS / Android 对照
Web原生支持
平台通用范围
font-family
CSS: font-family
官方定义是「指定一个按优先级排列的字体族名或通用族名列表」。它与另两端最不同的一点写在后文:字体选择「不是在列表里第一个可用的字体处就停下」,而是逐字符进行 —— 某个字体缺这个字的字形时,会继续往后找。所以备选列表不是摆设。
iOS原生支持
平台通用范围
custom
也叫 Font.custom(_:size:)
SwiftUI: Font.custom(_:size:)
官方描述是「用给定的名字和尺寸创建一个自定义字体,并随正文文字样式缩放」。这里字体与尺寸是一起给的,没有单独的「只换字体族」入口;而且同一族有三个变体分别对应随动态字体缩放、固定尺寸、相对某个文字样式缩放 —— 选哪个直接决定它跟不跟系统字号走。
Android原生支持
平台通用范围
fontFamily
Compose: TextStyle.fontFamily
官方描述是「渲染文字时使用的字体族」。类型是 FontFamily,它可以由一组 Font 构成 ——官方对 FontListFontFamily 的说明是「用一组 Font 定义一个字体族」,示例里那组 Font 用 weight 与 style 区分同一族的不同字重字形,也就是变体选择。至于 Web 那种「缺字时逐级换到下一个族」的语义,官方这两页都没有陈述 —— 这里只记录文档写了什么,不据此断言 Android 没有回退。
使用规范
什么时候用
- 品牌要求特定字形时
- 中英文混排需要分别指定字体时
什么时候别用
- 只是想让字更粗 → 那是字重,不是换字体
- 没有备选族名,缺字时会退到无法预期的字体上
容易混淆
给 AI 的提示词
这条词条还没有经过验证的实现提示词。