我的 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 字体)时,才真正需要备用字体。在这种情况下,您需要后备,因为您无法确定用户安装了什么。
如果您使用浏览器可以下载的网络字体,则永远不需要后备字体。如果字体下载失败,包含它仍然很好,但恕我直言,并不那么重要。