首页 > 解决方案 > 为什么后备字体会禁用 opentype 功能?

问题描述

当我在我的 CSS 代码中添加备用字体时,我的网站不再显示我已激活的 opentype 功能。为什么是这样?

Opentype 功能适用于:font-family:“Ogg-Roman”;

Opentype 功能不起作用:font-family:“Ogg-Roman”,Georgia,serif;

这是我的网站:https ://cpdesignery.com/

    @font-face {
font-family: "Ogg-Roman", Georgia, serif;
src: url('https://cpdesignery.com/wp-content/uploads/2019/01/Ogg-Roman.eot');
src: url('https://cpdesignery.com/wp-content/uploads/2019/01/Ogg-Roman.eot?#iefix') format('embedded-opentype'), 
url('https://cpdesignery.com/wp-content/uploads/2019/01/Ogg-Roman.woff2') format('woff2'), 
url('https://cpdesignery.com/wp-content/uploads/2019/01/Ogg-Roman.woff') format('woff');
}

h1, h2, h3, h4 {
    -webkit-font-feature-settings: "ss01" on, "ss03" on;
    -moz-font-feature-settings: "ss01" on, "ss03" on;
    -ms-font-feature-settings: "ss01" on, "ss03" on;
    font-feature-settings: "ss01" on, "ss03" on;
}

标签: cssopentype

解决方案


风格集特征的行为是特定于字体的:字体设计者可以随意使用它们,无论他们选择什么——即,他们想要提供的任何风格差异。因此,如果您继续应用“ss01”功能但更改底层字体,您最终可能会得到截然不同的风格效果。

一般问题(这不仅适用于样式集功能)在CSS Fonts Module Level 4 的第 6.9 节中进行了描述。

这假设后备字体甚至支持给定的 OpenType 功能。可能不会。在这种情况下,这来自CSS4 Fonts,6.12是相关的:

字体中不存在的特征标签将被忽略;用户代理不得尝试基于这些功能标签综合回退行为。一个例外是用户代理可以综合支持紧缩特性,其字体包含紧缩表形式的紧缩数据,但在 GPOS 表中缺乏紧缩特性支持。

类似地,来自第 7.2 节:

当字体不支持给定的底层字体功能时,文本会简单地呈现,就好像该字体功能未启用一样;不会发生字体回退,并且不会尝试合成该功能,除非为特定属性明确定义。


推荐阅读