Css @字体面src:local-如果用户已经拥有本地字体,如何使用它?

Css @字体面src:local-如果用户已经拥有本地字体,如何使用它?,css,font-face,Css,Font Face,使用@font-face的正确方法是什么,这样如果用户已经拥有字体,浏览器就不会下载该字体 我正在使用@font-face定义DejaVu,它已经安装在我的系统(linux)上。 Firefox没有下载字体,但Chromium每次都在下载 我的CSS代码,基于以下内容: @font-face { font-family: 'DejaVu Serif'; src: url('DejaVuSerif-webfont.eot'); src: local('DejaVu Seri

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

我正在使用@font-face定义DejaVu,它已经安装在我的系统(linux)上。 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;
}

实际上,我还没有对
字体做过任何处理,所以请恕我直言,但我认为浏览器没有任何方法可以确定用户机器上是否安装了给定的web字体

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


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

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

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

还有一个更详细的描述。

嗯,字体名称问题在这里影响很小,我想(我从来没有遇到过任何问题)是的,我想不太可能发生冲突。继续。css中的font/font-family不会让浏览器下载任何内容。如果在本地找不到字体,它会忽略它。这就是为什么我们通常使用字体堆栈的原因(字体列表)-如果没有第一种字体,它会尝试第二种,以此类推。@font-face是相对“新”的东西(@dbarbosa:我知道
font
/
font-family
是如何工作的。我只是清楚地不知道
@font-face
是如何工作的!相关:如果我们有2个
src
怎么办(如OP的例子)我们把
local
放在第一个还是第二个?你怎么知道正确的字体名称?是的,我不知道你怎么知道传递到
local()
的值是什么?啊,好吧,@Awn,这是“全名”和“Postscript名称”。在Mac OSX上可以找到以下内容