我将 compass 的font-face
mixin 与inline-font-files
and一起使用font-files
,以便使用 woff、ttf 和 otf 文件的数据 URI 创建符合The New Bulletproof @Font-Face Syntax的内容。
我将相对 URL 用于 eot(由于 IE 不支持数据 URI)和 svg 文件(由于我猜是 #FontName 哈希)。eot 文件没有问题,因为它有一个参数,但是因为font-face
在 Compass 中,svg 与其他格式没有什么不同,所以我根本不能inline-font-files
用来包含字体数据,因为这也会使 svg 版本内联。
有没有办法让font-face
返回类似于以下内容:
@font-face {
font-family: 'PTSans';
src: url('pts55fwebfont.eot');
src: url('pts55fwebfont.eot?#iefix') format('embedded-opentype'),
url('data:WOFF_DATA') format('woff'),
url('data:TTF_DATA') format('truetype'),
url('pts55fwebfont.svg#PTSansRegular') format('svg');
font-weight: normal;
font-style: normal;
}
问题是我无法弄清楚如何让 woff、otf 和 ttf 版本使用数据 URI,同时仍然允许 svg 版本使用标准 URL。我想出的最好的是:
@include font-face('PTSans', inline-font-files('ptsans/pts55fwebfont.woff', woff, 'ptsans/pts55fwebfont.ttf', truetype), 'ptsans/pts55fwebfont.eot', normal, normal);
@include font-face('PTSans', font-files('ptsans/pts55fwebfont.svg#PTSansRegular'), $weight: normal, $style: normal);
这会将 svg 分解为自己的@font-face。我可以使用不同的权重和样式创建多个具有相同姓氏的@font-face 规则的同一帐户上的有效 CSS 是否有效?如果是这种情况,它会像上面的示例 CSS 一样好用吗(看起来)?而且,当然,有没有更好的方法在 Compass/sass 中实现这一点?