我正在看MDC page for the @font-face CSS rule,但我没有得到一件事 . 我有 bold ,italic和 bold + italic 的单独文件 . 如何在一个 @font-face
规则中嵌入所有三个文件?例如,如果我有:
@font-face {
font-family: "DejaVu Sans";
src: url("./fonts/DejaVuSans.ttf") format("ttf");
}
strong {
font-family: "DejaVu Sans";
font-weight: bold;
}
浏览器将不知道哪个字体用于粗体(因为该文件是DejaVuSansBold.ttf),因此它将默认为我可能不想要的东西 . 如何告诉浏览器我对某种字体的所有不同变体?
6 回答
为了让字体变化正常工作,我不得不颠倒CSS中@ font-face的顺序 .
解决方案似乎是添加多个
@font-face
规则,例如:顺便说一下,谷歌Chrome似乎不知道
format("ttf")
参数,所以你可能想跳过它 .(这个答案对于CSS 2规范是正确的.CSS3只允许一个字体样式而不是逗号分隔列表 . )
如果您使用的是Google字体,我建议如下 .
如果您希望从本地主机或服务器运行字体,则需要下载文件 .
不要在下载链接中下载ttf软件包,而是使用它们提供的实时链接,例如:
将URL粘贴到浏览器中,您应该获得类似于第一个答案的字体 - 面部声明 .
打开提供的URL,下载并重命名文件 .
将更新的font-face声明与相对路径粘贴到CSS中的woff文件中,您就完成了 .
如今,二○一七年十二月一十七日 . 我在spec中没有找到任何关于字体属性顺序必要性的描述 . 而我在chrome中的测试始终适用于任何订单 .
从CSS3开始,规范发生了变化,只允许一个
font-style
. 以逗号分隔的列表(根据CSS2)将被视为normal
并覆盖任何早期(默认)条目 . 这将使以这种方式定义的字体永久显示为斜体 .在大多数情况下,斜体可能是足够的,如果您注意定义您将使用哪个并坚持使用倾斜规则将是不必要的 .