更新(基于更新的问题)
显然,生成的 OTF 字体没有为 web 正确编码——所有浏览器都有不同的字体渲染引擎,并且在 Chrome 和 Firefox 中解码此文件失败,甚至 Font Squirrel 报告字体已损坏,无法转换。有趣的是,在 Safari 中工作得很好。
如果您想使用 Roboto 字体功能,您必须生成自己的网络字体。我创建了一个演示页面,演示了 Roboto 的一些字体功能,各种网络字体(woff2
、woff
、otf
、ttf
)经过以下步骤:
make
使用 google/roboto 存储库运行后,您应该在RobotoTTF
目录中获得 TTF 字体。这些文件包括 Roboto 的所有字体功能,您可以使用它们来生成您的网络字体文件。如果你希望你甚至可以使用 TTF 字体:
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url('./Roboto-Regular.ttf') format('truetype');
}
尽管您的文件会很大,并且您绝对应该将它们转换为其他网络字体格式(woff2
产生最佳效果并且在所有现代浏览器中都受支持)以显着减小文件大小,因此您的@font-face
声明将是:
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url('./Roboto-Regular.woff2') format('woff2');
}
您仍然可以在生成的网络字体中包含和使用字体功能,并在您的 CSS 代码中使用它们:
.yourclass {
font-feature-settings: ...;
}
您可以在线和在计算机上使用许多工具。我尝试了以下方法,它们可以很好地将 OpenType 功能保留在生成的 Web 字体中:
附带说明一下,您可能会发现LCDF Typetools很有用,特别是otfinfo用于otfinfo -f Roboto-Regular.ttf
列出字体支持的所有功能。
以下是 Roboto 字体的功能列表:
- c2sc - 来自首都的小资本
- ccmp - 字形组合/分解
- cpsp - 大写间距
- dlig - 自由连字
- dnom - 分母
- frac - 分数
- kern - 字距
- liga - 标准连字
- lnum - 衬里数字
- mark - 标记定位
- mkmk - 标记到标记定位
- numr - 分子
- onum - 老式数字
- pnum - 比例数字
- 盐 - 风格替代品
- smcp - 小资本
- ss01 — 风格集 1
- ss02 — 风格集 2
- ss03 — 风格集 3
- ss04 — 风格集 4
- ss05 — 风格集 5
- ss06 — 风格集 6
- ss07 — 风格集 7
- tnum - 表格数字
- unic - 单字
我希望你会发现这很有帮助。
**因与更新的问题无关而删除