如果字体已经从另一个网站进行了@font-faced,是否会下载字体?

Do fonts get downloaded if they've already been @font-faced from another website?

我在我的网站上使用 Open Sans,并且我从 Google 网络字体上方便的彩色表盘注意到,如果我想要浅色、斜体、半粗体、粗体和其他字体样式,最终用户的下载量会很大。

这真的是像 Open Sans 这样流行的字体的问题吗?每当网站在 @font-face 声明中列出自己的文件时,浏览器是否会重新下载 Open Sans?

我是在招致昂贵的 HTTP 请求,还是只是在添加缺少的内容?因此,如果浏览器已经有 Open Sans Regular、Italic 和 Bold(以及 bold italic),他们只会从我这里获取 Light 和 Semi Bold?

Preemptive Update 我在我的@font-face 声明中使用了 local() 表达式,它给了我斜体样式的真正坏问题,它基本上忽略了它。

除非你使用 local(),你说你有问题,而且用户使用的字体文件可能与你假设的不同,字体文件就像任何其他资源(脚本,图片、样式表)。

它们将被浏览器缓存,具体取决于用户偏好 - 这意味着它们只会被下载一次并从那时起从缓存中使用,直到缓存过期或被清除。

如果您定义 @font-face 并为其指定字体文件,则将下载并使用浏览器从您列出的字体文件格式列表中识别的第一种格式。这就是为什么您通常首先列出最轻的格式,最后列出最重的格式:(woff2 > woff > ttf > svg).

请注意,如果您从服务器浏览器提供字体文件,则永远不会使用来自 Google 的字体文件,即使它们完全相同。这使您可以选择提供修改后的字体文件。但是如果你使用来自 Google 的字体文件,用户可能已经缓存了它们,如果他们下载了完全相同的 link(相同的权重,相同的变体),它们将被使用。