【问题标题】:@font-face src: local - How to use the local font if the user already has it?@font-face src: local - 如果用户已经拥有本地字体,如何使用它?
【发布时间】:2011-04-19 17:32:58
【问题描述】:

使用@font-face的正确方法是什么,这样浏览器就不会下载用户已经拥有的字体?

我正在使用@font-face 来定义 DejaVu,它已经安装在我的系统 (linux) 上。 Firefox 没有下载字体,但 Chromium 每次都在下载!

我的 CSS 代码基于 font squirrelthat question 如下所示:

@font-face {
    font-family: 'DejaVu Serif';
    src: url('DejaVuSerif-webfont.eot');
    src: local('DejaVu Serif'), url('DejaVuSerif-webfont.woff') format('woff'), url('DejaVuSerif-webfont.ttf') format('truetype'), url('DejaVuSerif-webfont.svg#webfontCFu7RF0I') format('svg');
    font-weight: normal;
    font-style: normal;
}

/* ... @font-face definitions for italic and bold omitted ... */

@font-face {
    font-family: 'DejaVu Serif';
    src: url('DejaVuSerif-BoldItalic-webfont.eot');
    src: local('DejaVu Serif Bold Italic'), url('DejaVuSerif-BoldItalic-webfont.woff') format('woff'), url('DejaVuSerif-BoldItalic-webfont.ttf') format('truetype'), url('DejaVuSerif-BoldItalic-webfont.svg#webfontQAewh7pf') format('svg');
    font-weight: bold;
    font-style: italic;
}

【问题讨论】:

标签: css font-face


【解决方案1】:

如果您想先检查本地文件,请执行以下操作:

@font-face {
font-family: 'Green Sans Web';
src:
    local('Green Web'),
    local('GreenWeb-Regular'),
    url('GreenWeb.ttf');
}

有更详细的描述of what to do here

【讨论】:

  • 如果我们有 2 个srcs(如 OP 的示例)怎么办?我们将local 放在第一个还是第二个?
  • 你怎么知道正确的字体名称是什么?
  • 是的,我不明白你怎么知道传递给 local() 的值是什么?
  • 啊,好吧,@Awn,这是“全名”和“后记名”。在 Mac OSX 上可以通过apple.stackexchange.com/questions/79875/… 找到
  • 谢谢,这帮助我解决了 Firefox 下载外部字体而不是使用本地安装字体的问题(目前看来需要 Postscript 名称)。
【解决方案2】:

我实际上并没有对font-face 做任何事情,所以请稍加注意,但我认为浏览器没有任何方法可以明确判断用户机器上是否安装了给定的网络字体或不是。

例如,用户可以在其计算机上安装具有相同名称的不同字体。唯一确定的方法是比较字体文件以查看它们是否相同。如果不先下载您的网络字体,浏览器就无法做到这一点。

当您在font 声明中实际使用字体时,Firefox 是否会下载该字体? (例如h1 { font: 'DejaVu Serif';)?

【讨论】:

  • 好吧,我猜字体名称问题在这里影响很短(我从来没有遇到过任何问题)
  • 是的,我猜不太可能发生碰撞。继续。
  • css 中的 font/font-family 不会让浏览器下载任何内容。如果在本地找不到字体,则忽略它。这就是为什么我们通常使用字体堆栈(字体列表)——如果它没有第一个,它会尝试第二个,依此类推。 @font-face 是相对“新”的东西 (stackoverflow.com/questions/2219916/is-font-face-usable-now)
  • @dbarbosa:我知道font/font-family 是如何工作的。我只是显然不知道@font-face 是如何工作的!
猜你喜欢
  • 2012-12-13
  • 2018-07-17
  • 2012-04-20
  • 2012-08-31
  • 2013-09-20
  • 2012-11-18
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
相关资源
最近更新 更多