4

我想使用的特定字体种类(带有连字)只能作为 OpenType 使用。

我正在尝试找出哪些浏览器能够正确显示它,以及我应该如何将它添加到 CSS 中。

我从 2012 年 7 月发现这篇文章,其中包括 Paul Irish 的贡献,这表明它可能是权威的:

http://www.typotheque.com/articles/opentype_features_in_web_browsers

但我不明白 OpenType 字体和 OpenType 功能之间的区别:

But while all modern browsers can display OpenType *fonts*, only Firefox 
(since version 4) [1], Internet Explorer 10 (preview version)[2] and 
the latest versions of Google Chrome[12] are currently able to display 
OpenType *features*. 

所以:

  1. 我可以在现代浏览器中使用这种 OpenType 字体吗?OpenType 字体和功能有什么区别?我希望能够显示 ASCII 字符和连字。
  2. 我应该如何在 CSS 中实际包含这个 OpenType 字体?
4

3 回答 3

5

在浏览器中使用字体(一种可以合法用作可下载字体的字体)的实用方法是使用 FontSquirrel @font-face Generator之类的服务来创建所需的不同字体格式并使用它生成的 CSS 代码, 酌情决定(如果您使用斜体、粗体或任何其他非常规字体,则可能需要进行调整)。

假设字体最初包含连字定义并且转换器保留了信息(您需要在转换后运行一些测试),“标准”连字将默认在现代版本的 Firefox 中使用。要让 Chrome 和 Safari 使用它们,请添加 CSS 声明

text-rendering: optimizeLegibility

(适用于应使用连字呈现的任何元素),并且还涵盖 IE 10,还添加

-ms-font-feature-settings: "liga";

为了安全起见,还添加了建议的标准设置:

font-feature-settings: "liga";

我认为这为您提供了您现在或不久的将来可以获得的一切。

如果字体包含上下文 ( clig)、任意 ( dlig) 或历史 ( hlig) 连字的定义,您可以在某些浏览器上启用它们。例如,除了标准连字之外,以下内容还启用了自由连字:

-ms-font-feature-settings: "liga", "dlig";
-webkit-font-feature-settings: "liga", "dlig";
-moz-font-feature-settings: "liga", "dlig";
font-feature-settings: "liga", "dlig";

您可以使用Google 网络字体Source Sans Pro 进行测试,它具有标准的“ff”和“ft”连字(至少在足够大的字体大小下可以与非连字渲染区分开来)。

关于理论,OpenType 是一种规范和字体格式,它允许将印刷信息嵌入字体文件等。浏览器可能支持该格式而不支持使用嵌入信息。

于 2012-11-27T18:28:05.550 回答
0

我认为 OpenType 功能可以在 OpenType 字体中的字符之间使用连字。这就是浏览器能够互连字母并拥有大量标签的方式。

您可以在本文中查看更多详细信息:http: //ilovetypography.com/OpenType/opentype-features.html

您也可以查看维基百科文章中的标签规范。Paul Irish 和其他人说并不是每个浏览器都支持这些功能,但几乎每个现代浏览器都倾向于支持 css3 属性,其中之一就是通过@font-face规则包含字体类型。=> http://www.w3schools.com/css3/css3_fonts.asp

如果您需要对字体进行一些转换,您可以查看 fontsquirrel 服务:www.fontsquirrel.com

于 2012-11-27T17:11:14.903 回答
0
  1. 将您的 otf 上传到 font-squirrel - http://www.fontsquirrel.com/fontface/generator
  2. 使用 fontspring 提供的语法 - http://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax
于 2012-11-27T17:16:59.947 回答