图标字体的 CSS font-family 后备?

don*_*ote 6 css font-family

我的 IDE 检查我的 CSS 文件,并抱怨我是否放置了font-family没有通用后备的规则。一般来说,我必须同意我的IDE,我会很乐意添加字体回调。

例子:

.selector {
  font-family: Arial;  /* IDE complains. */
  font-family: Arial, sans-serif;  /* IDE is happy. */
}
Run Code Online (Sandbox Code Playgroud)

但是,有时 font-family 是一种图标字体(我认为 fontawesome 就是其中之一),并且回退并没有真正意义。或者是吗?

.my-icon {
  font-family: 'my-icon-font';  /* IDE complains. */
  font-family: 'my-icon-font', serif;  /* IDE is happy, but it does not make sense. */
}
Run Code Online (Sandbox Code Playgroud)

是否有任何合理的回退可以将图标字体附加到字体系列规则中?

额外的动机

就我而言,主要是我的 IDE 促使我添加通用字体回调。作为最后的手段,我可​​以禁用、抑制或忽略此检查。

然而,在其他团队中,可能有关于代码约定的严格规则,甚至可能是一种机制,如果他们不遵守就阻止提交。

或者,如果我是代码检查工具的作者,或者正在定义要在项目中使用的编码约定怎么办?那么我肯定想知道什么是“正确”或最聪明的方法来做到这一点:)

sle*_*ske 10

正如评论中所讨论的,这是一个虚假的警告。

正如您自己指出的那样,没有适合作为图标字体后备的通用字体系列 - 也不可能存在,因为图标字体没有标准化。

相关规范(CSS 字体模块级别 3)仅列出了以下通用系列

  • 衬线
  • 无衬线字体
  • 草书
  • 幻想
  • 等宽字体

这些都不适合 - 因为它们都明确不适用于图标/图片字体。

所以你可能应该找到一种方法来抑制警告。理想情况下,系统将允许您添加应抑制警告的字体列表(例如图标字体)。否则,您将不得不完全抑制该警告。


旁注:仅当您想要使用用户计算机上安装的字体(例如 Arial 等标准 Windows 字体)时,才真正需要备用字体。在这种情况下,您需要后备,因为您无法确定用户安装了什么。

如果您使用浏览器可以下载的网络字体,则永远不需要后备字体。如果字体下载失败,包含它仍然很好,但恕我直言,并不那么重要。