我可以在字体列表中使用 CSS 变量并让它在旧浏览器中工作吗?

1.2*_*tts 6 html css css-variables

我想使用 CSS 变量来存储字体,以防用户没有安装指定的字体。

例子:

:root {
     --common-font: Comic Sans MS;
}

.header1 {
     font-family: CoolFont1, var(--common-font);
}
Run Code Online (Sandbox Code Playgroud)

如果我在字体名称中添加对变量的引用,旧浏览器会中断吗?

https://caniuse.com/#feat=css-variables

dre*_*den 8

是的,它会中断,您必须在不使用 CSS 变量的情况下为旧版浏览器使用回退字体。

例如:

   .header {
       font-family: sans-serif; /* This is fallback font for old browsers */
       font-family: var(--common-font);
    }
Run Code Online (Sandbox Code Playgroud)

您也可以将@supports 条件与虚拟功能查询一起使用:

.header {
    @supports ( (--a: 0)) {
      /* supported */
      font-family: var(--common-font);
    }

    @supports ( not (--a: 0)) {
      /* not supported */
      font-family: sans-serif; /* This is fallback font for old browsers */
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我可能会添加如何使用回退来完成答案 (5认同)
  • 为什么这不是答案?问题是“如果我在字体名称中添加对变量的引用,旧浏览器会中断吗?”。在这里回答:“是的,它会”。如果 OP 想要一个更好的答案,我认为他应该重新表述他的问题。:-) (2认同)