仅当Webfont不支持字符时才使用font-weight粗体

时间:2013-01-24 10:36:49

标签: css font-face

我正在使用仅支持大多数拉丁字符的webfont。但是,该网站是多语言的,俄语是其中一种语言。您可能知道,俄语由西里尔字符组成,然后显示在辅助字体系列中。我发现Verdana + font-weight:粗体是一个很好的选择。

但是,font-weight bold只需要与Verdana相关,所以我不能把它写入普通的CSS,因为webfont不应该显示为粗体。这里有些尝试不起作用:

CSS:

@font-face {
  font-family: "some Webfont";
  src:url('xyz.eot')
}


/* The font-weight won't work here */
@font-face {
  font-family: "Verdana-Bld";
  src:
    local('Verdana');
  font-weight:bold;
}



/* Doesn't work in IE9 at all */
@font-face {
  font-family: "Verdana-Bld";
  src:
    local('Verdana Bold');
}

/* Doesn't work in IE9 at all */
@font-face {
  font-family: "Verdana-Bld";
  src:
    local('Verdana Bold');
}

.container {
  font-family:"some Webfont", "Verdana-Bld";
}

所以font-face可能不是这里的解决方案,Verdana Bold似乎是一个好方法,但是,在普通的CSS中使用它时它不起作用:

.container {
  font-family:"some Webfont", "Verdana Bold";
}

我不明白,在使用@ font-face时,它会找到并呈现该字体,但在使用font-family时却没有?

2 个答案:

答案 0 :(得分:1)

Verdana Bold实际上只是Verdana字体系列的字体,应该通过设置font-family: Verdana; font-weight: bold来使用它。在某些情况下,通过将其名称声明为font-family的值,可以将字体用作字体系列,但这取决于浏览器并且也取决于字体;对于Verdana Bold来说,这个伎俩似乎不起作用。使用@font-face的更复杂的技巧适用于某些浏览器但不是全部,如您所见;这甚至取决于您使用的字体名称(例如,“完整字体名称”Verdana Bold与PostScript字体名称Verdana-Bold)。

因此需要采用不同的方法:尝试找到涵盖所需字符的字体。例如,在Google web fonts,您可以将“脚本”设置为“西里尔语”以查找支持俄语字母的字体。这些字体通常也支持拉丁字母。

答案 1 :(得分:0)

所以font-face中的font-weight没有设置font-weight,但是它是一种过滤器,供浏览器决定它是否是正确使用的字体。因此,当浏览器查看要显示的字体时,它将选择font-face所在的font-face:bold,如果您当前的文本为粗体,则会在其他任何情况下使用另一个。

我认为实际上可以将一个字体加粗,另一个字体是正常的,只要你可以直接在font-face中调用它。 (所以,如果你可能有类似local('Verdana Bold')的东西。那么就摆脱font-face:bold,它应该可以正常工作。