Webfont没有变音符号

时间:2013-11-26 07:44:13

标签: css fonts typography

我最近购买了一种字体,并希望使用网络字体将其嵌入我的网站。

现在的问题是:在购买之后,我意识到字体缺少变音符号,例如ä,ü和ö,所以它显示空格而不是(缺少)字符。

有没有办法防止这种情况发生?就像告诉css使用另一种字体的缺少字符?或者我是否必须编辑字体本身?

Screenshot http://i40.tinypic.com/315y5jt.png

2 个答案:

答案 0 :(得分:1)

因为除了重新构造字体文件之外没有“简单”或干净的方法,这里有一个小的JS脚本用<span>替换扩展的ASCII字符。 (一个人只能为确切的,必需的角色做这个,但是一旦你不小心遇到另一个不受支持的角色,你最终会再次问自己同样的问题。)

JS仅针对示例文本:

"Hêllo wörld. ÄÖÜßäöü".replace(/([\x80-\xff])/gi, '<span class="arial">$&</span>')

结果:

H<span class="arial">ê</span>llo w<span class="arial">ö</span>rld. <span class="arial">Ä</span><span class="arial">Ö</span><span class="arial">Ü</span><span class="arial">ß</span><span class="arial">ä</span><span class="arial">ö</span><span class="arial">ü</span>

jQuery的:

$('.webfont').each(function(){
    this.innerHTML = this.innerHTML.replace(/([\x80-\xff])/gi, '<span class="arial">$&</span>')
});

具有.webfont的节点应该只包含文本,尽管它也适用于大多数其他情况。

答案 1 :(得分:0)

没有可接受的方法可以防止这种情况发生。使用不同的字体。 (有可能是您购买的字体有更高版本,费用更高。)应该选择字体,使其包含文本中可能需要的所有字符,至少包含所有字母。

对于单词中的不同字母,可以使用不同的字体,使用各种技术(@font-face,范围设置是最优雅的,但浏览器支持有限)。但是,这意味着排版灾难。特别是如果文本包含例如无论是“ü”还是“u”,通常都会出现惊人的不匹配。

使用字体编辑器在技术上可以编辑字体本身,但通常是非法的,除非字体许可证允许或适用法律的版权豁免。