解决方案
要解决此符号的问题,您可以使用Google Font API text query parameter,它将仅返回提供的符号/字符的字形:
在这些情况下,您应该考虑在字体请求 URL 中指定 text= 值。这允许 Google 字体返回针对您的请求进行了优化的字体文件。
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto%20Serif&text=‡');
body {
font-family: "Noto Serif", sans-serif;
font-size: 50px;
}
<p>test † ‡</p>
TL;DR
字体它只是与 Unicode 符号匹配的字形集合。谷歌字体试图为每个特定情况提供优化的字形包。例如,Noto Serif 的默认 URL 将返回所有主要子集的 CSS 代码,例如:latin、latin-ext、西里尔文等。点击下面的链接查看子集的完整列表
Google Fonts API 支持subset query parameter,因此您可以灵活地为您配置所需的subset,并且不会加载过多。
‡ Double Dagger 有 U+2021 Unicode 编号,它是 General Punctuation Unicode subset 的一部分,使用范围在 2000-206F 之间。 Google 字体在 latin 子集中包含此范围:
@font-face {
font-family: 'Noto Serif';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/notoserif/v9/ga6Iaw1J5X9T9RW6j9bNfFcWaDq8fMU.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
什么意思?
这意味着您所做的一切都是正确的,因为正确请求了所有必需的子集,但是以某种方式获取的字体不包含 U+2021 符号的字形。它看起来像谷歌字体方面的一个错误。作为临时解决方案,您可以使用建议的解决方法,但我认为应该向 Google Font 报告。
相关问题