@ font-face src:local – 如果用户已经拥有本地字体,如何使用本地字体?

什么是正确的方式来使用@font-face以便浏览器不会下载字体,如果用户已经有了它?

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

我的CSS代码,基于字体松鼠 , 这个问题是这样的:

 @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; } 

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

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

这里有更详细的说明。

实际上我没有用font-face做任何事情,所以拿一点盐,但我不认为有什么办法让浏览器明确地告诉如果一个给定的Web字体安装在用户的机器上或没有。

例如,用户可以在他们的机器上安装相同名称的不同字体。 明确告诉的唯一方法是比较字体文件,看它们是否相同。 而浏览器不能没有下载你的networking字体第一。

Firefox在font声明中实际使用时是否下载font ? (例如h1 { font: 'DejaVu Serif'; )?