font-feature-settings:正确的语法是什么?

Sve*_*ven 17 css typography css3 webfonts font-face

我购买了一个支持一些开放式功能的webfont,当然我想使用它们.
不幸的是,我无法在网上找到解释使用语法的最佳方法 - 在我看来,这font-feature-settings是另一个前缀地狱的例子.

目前我有这样写的但是我不确定它是否涵盖了支持这些功能的所有浏览器.

.element {
    -webkit-font-feature-settings: "kern" 1, "liga" 1, "case" 1;
       -moz-font-feature-settings: "kern=1", "liga=1", "case=1";
       -moz-font-feature-settings: "kern" on, "liga" on, "case" on;
        -ms-font-feature-settings: "kern" 1, "liga" 1, "case";
         -o-font-feature-settings: "kern", "liga", "case";
            font-feature-settings: "kern", "liga", "case";
}
Run Code Online (Sandbox Code Playgroud)

更具体地说,-moz语法似乎很奇怪.一些消息来源声称这是要使用的语法:

-moz-font-feature-settings: "liga=1";  /* Firefox 14 and before */
-moz-font-feature-settings: "liga" on; /* Firefox 15 */
Run Code Online (Sandbox Code Playgroud)

其他人这样做是这样的:

-moz-font-feature-settings: "cswh=1";
-moz-font-feature-settings: "cswh";
Run Code Online (Sandbox Code Playgroud)

同样的事情-webkit; 有人这样写:

-webkit-font-feature-settings: "liga" on, "dlig" on;
Run Code Online (Sandbox Code Playgroud)

而其他人这样做:

-webkit-font-feature-settings: "liga", "dlig";
Run Code Online (Sandbox Code Playgroud)

或者像这样:

-webkit-font-feature-settings: "liga" 1, "dlig" 1;  
Run Code Online (Sandbox Code Playgroud)

和顶部,也有text-rendering: optimizelegibility;这似乎是一样的"kern",并"liga"在WebKit浏览器,至少.

那么,2013年在网络上使用Open Type字体功能的正确,无懈可击的方式是什么?

Jam*_*lly 12

那么,寻找2013年网络功能应该如何工作的最佳位置是W3 CSS3规范:

如果存在,则值表示用于字形选择的索引.值必须为0或更大.值为0表示该功能已禁用.对于布尔功能,值为1将启用该功能.对于非布尔特征,值为1或更大可启用该特征并指示特征选择索引.值"on"与1同义,"off"与0同义.如果省略该值,则假定值为1.

这意味着"liga" 1,"liga" onliga所有做同样的事情.

正如BoltClock在他对这个问题的评论中提到的那样,"feature=value"语法不是很有效,而且似乎是Firefox特有的东西.

歌剧和IE(<10)不支持font-feature-settings在所有的,所以-o-*-ms-*属性是可能没用.

总的来说,所有当前支持的浏览器的工作语法似乎是:

.element {
    -webkit-font-feature-settings: "kern", "liga", "case"; /* No variation */
       -moz-font-feature-settings: "kern=1", "liga=1", "case=1"; /* Firefox 4.0 to 14.0 */
       -moz-font-feature-settings: "kern", "liga" , "case"; /* Firefox 15.0 onwards */
       -moz-font-feature-settings: "kern" 1, "liga" 1, "case" 1; /* Firefox 15.0 onwards explicitly set feature values */
            font-feature-settings: "kern", "liga", "case"; /* No variation */
}
Run Code Online (Sandbox Code Playgroud)

  • 根据MSDN,似乎`-ms-font-feature-settings`确实存在于某一点.它可以在预发布版本中使用,然后在稳定版本中没有固定,就像其他几个模块一样. (2认同)