我有一种字体在IE8和IE9以及所有其他浏览器中都能正常工作,但第二种字体只在IE9和其他浏览器中工作。在IE8中,我得到了一个错误:
“CSS3111:@font-face遇到未知错误。”
我一直在四处看书,尝试了很多事情,但都没有运气。
我的代码是:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test Site</title>
<meta charset="utf-8" />
<style type="text/css">
@font-face {
font-family: "Cake";
src: url('cake.eot'); /* IE9 Compat Modes */
src: url('cake.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('cake.woff') format('woff'), /* Modern Browsers */
url('cake.ttf') format('truetype'), /* Safari, Android, iOS */
url('cake.svg#svgCake') format('svg'); /* Legacy iOS */
}
p {
font-family: "Cake";
}
</style>
</head>
<body>
<p>Testing font</p>
</body>
</html>
我试过用几个不同的生成器多次重新生成eot,玩过CSS,玩过头,玩过域,等等,但是看起来它们都很好。如前所述,相同的代码在相同的,只是指向不同的字体文件工作很好。由于某种原因,这个文件不想工作。我查看了ttfpatch程序,但它告诉我字体的tableversion是3,与其他工作字体相同。这些字体被一个名为Type Light 3.2的程序修改,添加了几个法语字符,但正如前面提到的,在所有其他浏览器上都起作用。
如有任何帮助,我们将不胜感激。多谢了。
编辑:
我意识到的一件事是EOT文件没有被IE9读取,它给出了同样的错误,只是使用了WOFF文件。您可以在http://www.searchfreefonts.com/free/cake.htm下载原始字体。有人能在IE8中实现这个功能吗?
编辑2:
在developer tools中查看,eot字体似乎正在下载,并且是正确的类型。我得到一个304响应代码。
找不到解决方法。在不同的计算机上多次重新下载和重新生成字体,每次查看都清除缓存,但仍然无效。其他字体工作良好,所以我的结论是eot生成器不喜欢这种字体。