font-face src 的可能格式值
P粉447785031
2023-08-29 15:53:34
<p>如何知道使用什么、何时使用以及是否真正需要它们?</p>
<p>许多网站都有如下示例,但顺序不同:</p>
<pre class="brush:php;toolbar:false;">@font-face {
font-family: 'Example';
src: url('Example.eot');
src: url('Example.eot?#iefix') format('embedded-opentype'),
url('Example.woff2') format('woff2'),
url('Example.woff') format('woff'),
url('Example.ttf') format('truetype'),
url('Example.svg#svgExample') format('svg');
}</pre>
<p>但我也见过这样的例子:</p>
<pre class="brush:php;toolbar:false;">@font-face {
font-family: 'Example';
src: url('Example.woff2') format('woff');
}
@font-face {
font-family: 'Example';
src: url('Example.ttf') format('woff2-variations');
}
@font-face {
font-family: 'Example';
src: url('Example.otf');
}</pre>
<p>有时格式看起来与文件结尾相同,有时文件结尾缩写或至少部分相同,而其他时候它们似乎完全是随机字符串,或者有时如果只是一个文件,则什么都不是。</p>
了解所有可能的格式值并不重要 - 因为其中很多都源自实验性浏览器实现。
实际上,您可能会将某些格式值与 CSS 浏览器前缀进行比较 - 幸运的是,它们已经变得不那么相关了 - 不幸的是,它们有时仍然是相关的。
参考您的第一个
@font-face
示例:.otf 格式('opentype')
.otf
实际上丢失了 - 但它与网络使用无关。与 truetype 类似,它们可以本地安装并在任何桌面应用程序中使用。
在字体铸造行话中:OTF 字体文件也称为“后脚本风味”Open Type 字体。
与 woff2 相比,而 .ttf/truetype 字体也称为“Truetype 风味”Open Type 字体。
.otf
字体缺乏高级文件压缩。.eot 格式('嵌入式-opentype')
仅由 Internet Explorer 使用 - 但即使这些暴行也至少能够呈现 ttf/truetype。
.eot
已过时(除非你需要维护一些运行在特殊窗口嵌入式系统上的嵌入式系统)。
.svg 格式('svg')
仅受 webkit 浏览器(safari、epiphany、midori)和 Android 浏览器支持。
然而,所有上述浏览器也支持 woff2、woff 或 truetype。
最重要的是,基于 Chromium/Blink 的浏览器(opera、Vivaldi、Brave、Internet Explorer 13/Edge)或 Firefox 不支持。
不需要
.svg
字体文件(尽管它们可以方便地作为 icomoon 等图标生成器的交换格式).ttf 格式('truetype')
可能是受支持最好的字体格式,但不如 woff2 或 woff 那么紧凑。
此外,truetype 字体可以在桌面环境中使用,因此可以在任何应用程序中本地安装和使用。
对于某些用例(例如 pdf 转换)仍然相关。
可变字体
您可能会遇到像这篇文章中这样的旧符号: css 技巧
这些额外的格式类型起源于可变字体支持还处于实验阶段的时期。
如今,它们不再需要——只需使用正常的格式标识符即可。
你“可能”也会放弃这种格式
即使没有指定的格式,大多数现代浏览器也可以将字体文件映射到字体系列。
不过,将它们包含在内仍然是一个好主意。
但是:错误的格式值可能会破坏您的 @font-face 规则!
常见错误:
而不是
...不要忘记粗细和样式属性
可变字体@font-face
在本例中,font-weight 和其他属性包含 2 个值来定义范围,例如
font-weight: 100 1000
。