@字体面不是在IE正确显示(@font-face not displaying correctly

2019-08-18 14:12发布

我一直在寻找了几个小时,问朋友,也没有工作。 所以,我希望你们能帮助我。 我的网站使用自定义字体,但IE(10)不支持对我做的方式。 我不知道它支持的其他方法。 这里是我的:

    @font-face { font-family: shardee; src:url('fonts/Shardee.ttf'); }

这是没有必要有Internet Explorer中的自定义字体,但它会很高兴。

当Internet Explorer不知道字体,它使用它的默认字体。 但问题是,自定义字体的字体大小是完美的,但IE的默认字体的是太大了。 我尝试了与IE特定的CSS代码修复它,但它只是不工作。 我使用Interner Explorer中进行以下CSS代码:

    <!--[if IE]>
      <style>
          #menu ul li{ font-size:15px; }
      </style>
    <![endif]-->

我也尝试过通过一个外部的样式表,它是这样的:

    <!--[if IE]>
      <link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri() ?>/style/ie.css" />
    <![endif]-->

我在PHP中使用该功能是一个WordPress的功能,把你带到你的网站的路径。 如果你不使用WordPress,你可以忘记那个代码,并让它空白。

这个问题是不是路径,该路径是正确的。 我特地到浏览器的源代码,而事实证明,我,我有ie.css代码。 在ie.css的代码是完全一样上面,但没有标签等。

我希望你们能帮助我解决这个问题。 2个解决方案是可能的据我所知。 让即特定的CSS工作,或者告诉我的方式在IE中创建自定义字体。 我使用的Internet Explorer版本10。

你可以看到该网站在这里 ,但一旦固定就消失了,因为我并不需要把它放在一个子一旦被固定。

亲切的问候,巴特罗洛夫斯

Answer 1:

多种字体格式

为了支持广泛的浏览器,使用.ttf, .woff.eot字体的版本。

@font-face {
    font-family: 'shardee';
    src: url('fonts/Shardee.eot');
    src: url('fonts/Shardee.eot?#iefix')
             format('embedded-opentype'),
         url('fonts/Shardee.woff') format('woff'),
         url('fonts/Shardee.ttf') format('truetype');
}

您可以使用字体转换的网站像字体松鼠 ,在转换.ttf字体到.woff.eot

DRM假阳性

作为@Jukka指出,有与同时防止它在Windows中被使用的TTF文件中的法律问题。 在IE显影剂控制台,则显示以下错误消息:

CSS3114: @font-face failed OpenType embedding permission check.
Permission must be Installable.

Shardee似乎是与一个废弃字体未知许可证类型 。 虽然它可能是合法的,使用这种字体时,Windows似乎需要每一个TTF文件有DRM信息明确地说,这是合法的,将它嵌入到网页中。 在IE中的错误是最有可能是假阳性。

为了验证这一点,我把那上已知被合法授权的网站上使用TTF字库。 该TTF版本并没有在IE浏览器,因为DRM错误的。 这个例子肯定是假阳性。 这就是为什么有必要使用多种字体格式的原因之一,为什么像TTF一个单一的格式将无法在所有的浏览器。

虽然Windows不允许IE使用TTF文件,IE仍然可以使用WOFF或EOT版本。 当我测试上述@font-face上的本地网络服务器规则,使用所有三种字体格式中,Shardee字体在IE中的所有版本都正确呈现(尽管在IE显影剂控制台错误消息)。

步骤来尝试:

  1. 转换的.ttf文件.woff.eot
  2. 上传.woff.eot文件复制到同一目录中已有的.ttf文件。
  3. 更换@font-face与上面的一个规则。 我在它的最初版本修正了几个错别字。

如果仍然有问题,有可能是与Web服务器的设置的问题。 相关问题: IE9块跨域Web字体下载



Answer 2:

所以,这个问题显然是,关于IE 10,菜单,与元素中id=menu ,不会出现在声明的字体“shardee”,但在浏览器的默认字体。 这实际上使得菜单的可读性。 但在技术上,该解释可以在开发者工具(按F12进入它们)可见,在控制台窗格中。 错误信息,用代码CSS3114,告诉@font-face没有通过对使用权检查的嵌入。

退房字体的使用权,并与版权持有人(这是被推定高见)获得可能的话的权利。



Answer 3:

FontPrep是一个优秀的Web字体生成器为Mac OS X.它甚至会创建一个fonts.css



Answer 4:

IE11:如果您收到CSS3114在开发工具的错误代码,您需要修改字体文件的第一位。 这将使IE安装字体。

NPM模块:您可以使用ttembed-js NPM模块,这将使得修改为您服务。 https://www.npmjs.com/package/ttembed-js

用法: ttembed-js path/to/Shardee.ttf



Answer 5:

我遇到了同样的问题,跑F12。 看来兼容性视图在IE10的站点启用了我的。 一旦禁用我兼容性视图中显示的自定义字体。 希望这可以帮助别人...



Answer 6:

在网上搜索,我发现这个在线工具,其对TTF字库的修复,使其显示的浏览器: https://www.andrebacklund.com/fontfixer.html



文章来源: @font-face not displaying correctly in IE