美文网首页
网页字体 font-family 属性详解

网页字体 font-family 属性详解

作者: ZJ_偶尔上路 | 来源:发表于2024-03-12 15:33 被阅读0次

问题描述

当我们拿到设计稿去实现一个网页时,经常会发现设计稿当中一般使用的字体都是 PingFang SC 这一款字体。这是因为我们的 UI 设计师 一般使用的都是 Mac 电脑制作的设计稿。但是我们并不能傻乎乎的就按照设计稿直接设置 font-family:PingFang SC;

因为在 Windows 系统下并没有苹方字体可以使用。所以我们需要灵活地去设置网页的字体家族,在不同的系统下,不同的设备下,使用合适的字体,并且兼顾到中英文。并不是设计稿是什么字体,就必须设置为这款字体。

一般我们都会为 body 标签,指定 font-family 属性,为整个网页设置统一的字体,而且尽可能的使用各个系统下的默认字体。

各大网站最新的 font-family

小米:Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
京东:Microsoft YaHei,Heiti SC,tahoma,arial,Hiragino Sans GB,"\5B8B\4F53",sans-serif;
天猫:font-family: "PingFang SC",miui,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,sans-serif;
Github:font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;

其中 system-ui,-apple-system,BlinkMacSystemFont ,Segoe UI ,Helvetica ,Arial 是在指定使用各个系统下默认的西文字体。
其中 "PingFang SC" ,Microsoft Yahei 指定各个系统下默认的中文字体。
其中 Hiragino Sans GB ,Heiti SC ,WenQuanYi Micro Hei 指定一些常见的中文字体。

新增通用字体族关键字

  • system-ui 系统默认字体
  • emoji 用于兼容 emoji 表情符号字符
system-ui

简单而言,font-family: system-ui 的目的就是在不同的操作系统的 Web 页面下,自动选择本操作系统下的默认系统字体。

默认使用特定操作系统的系统字体可以提高性能,因为浏览器或者 webview 不必去下载任何字体文件,而是使用已有的字体文件。font-family: system-ui 字体设置的优势之处在于它与当前操作系统使用的字体相匹配,对于文本内容而言,它可以得到最恰当的展示。

-apple-system/BlinkMacSystemFont

话说回来。正如每个前端开发人员都知道的那样,将一个功能纳入规范是一回事,将其纳入浏览器又是另一回事。
幸运的是,system-ui 的普及很快。Chrome 和 Safari 都可以在各种平台上完全支持它。只有 Mozilla 和 Windows 相对落后。
考虑到不同平台及向后兼容,在 macOS 和 iOS 上,我们需要使用 -apple-system 及 BlinkMacSystemFont 来兼容适配 system-ui 标准。

Segoe UI

Segoe UI 是 Windows 从 Vista 开始的默认西文字体族,只有西文,不支持汉字,属于无衬线体。
它也表示一个系列而不是某一款单一字体。使用 font-family: Segoe UI 可以在 Windows 平台及 Windows Phone 上选取最佳的西文字体展示。

Roboto

Roboto 是为 Android 操作系统设计的一个无衬线字体家族。

网站字体定义推荐写法

以 Git-Hub 网站的 font-family 定义为例子:

{
  font-family: 
    system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,
    Helvetica,Arial,
    sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;
}

system-ui,使用各个支持平台上的默认系统字体

-apple-system, 在一些稍低版本 Mac OS X 和 iOS 上,升级使用更为合适的旧金山西文字体
BlinkMacSystemFont,针对一些 Mac OS X 上的 Chrome 浏览器,使用系统默认字体

segoe ui,在 Windows 及 Windows Phone 上选取系统默认字体
Roboto,面向 Android 和一些新版的的 Chrome OS

Helvetica,Arial,在针对不同操作系统不同平台设定采用默认系统字体后,针对一些低版本浏览器的降级方案

sans-serif,兜底方案,保证字体风格统一,至少也得是无衬线字体

上述 5 个字体族定义,优先级由高到底,可以看到,它们 5 个都并非某个特定字体,基本的核心思想都是选择对应平台上的默认系统字体。

使用系统默认字体的主要原因是性能。字体通常是网站上加载的最大/最重的资源之一。如果我们可以使用用户机器上已有的字体,我们就完全不需要再去获取字体资源,从而使加载时间明显加快。
并且系统字体的优点在于它与当前操作系统使用的相匹配,因此它的文本展示必然也是一个让人舒适展示效果。

中文字体设置

当然国内网站还要考虑到中文字体,因为上述 Git-Hub 是一个外文网站,所以没有中文字体的需求。

  • "PingFang SC" 苹果默认的中文字体
  • Microsoft Yahei windows默认的中文字体
  • Heiti SC 黑体
  • WenQuanYi Micro Hei 黑体,类似的还有冬青黑体Hiragino Sans GB
  • "\5B8B\4F53" 宋体,也可以直接写成 宋体

字体设置建议

1、尽量使用系统默认字体
2、兼顾中西,西文在前,中文在后

中文或者西文(英文)都要考虑到。由于大部分中文字体也是带有英文部分的,但是英文部分又不怎么好看,但是英文字体中大多不包含中文。通常会先进行英文字体的声明,选择最优的英文字体,这样不会影响到中文字体的选择,中文字体声明则紧随其次。

3、兼顾多操作系统

选择字体的时候要考虑多操作系统。例如 MAC OS 下的很多中文字体在 Windows 都没有预装,为了保证 MAC 用户的体验,在定义中文字体的时候,先定义 MAC 用户的中文字体,再定义 Windows 用户的中文字体。

4、以字体族系列 serif 和 sans-serif 结尾

相关文章

  • HTML与CSS的字体

    字体 font-family ​ 文本字体,该属性设置文本的字体。 ​ font-family属性应该设置...

  • CSS核心属性

    第一节 文本类型属性 font-family:字体类型 语法:{font-family:字体1,字体2,字体3;}...

  • CSS文本样式

    字体样式 属性名 含义 举例font-family 设置字体类型 font-family:"隶书";font-si...

  • css--字体(font-size/font-family/图标

    字体的属性 与font-size相关的单位 字体族 font-family font-family用于指定字体的类...

  • CSS之文本

    font-family 属性 font-family属性用于指定一个元素的字体有两种形式的字体名称:---font...

  • 第五章 美化网页元素

    一丶字体样式: 属性 含义举例 font-family设置字体类型font-family: "隶书";font-s...

  • CSS学习心得(二)

    CSS字体 字体系列(font-family) font-family 属性应该设置几个字体名称作为一种"后备"机...

  • css中的继承属性和非继承属性

    继承属性 字体系列属性font:组合字体font-family:规定元素的字体系列font-weight:设置字体...

  • 字体和文本样式

    字体 属性属性值作用备注继承性font-family字体名 集体集设置字体/√font-stylenormal ...

  • CSS字体样式总结

    本文纯属个人学习的总结。 CSS中的字体属性。 1.字体类型font-family 语法:font-family:...

网友评论

      本文标题:网页字体 font-family 属性详解

      本文链接:https://www.haomeiwen.com/subject/tqovzdtx.html