首页 文章

IE9 - CSS3111:@ font-face遇到未知错误

提问于
浏览
28

我从http://www.google.com/webfonts嵌入了三个Google字体(Dosis,Open Sans,Lato)

除了IE9之外,它们都能正常工作:

CSS3111: @font-face encountered unknown error. 
2HG_tEPiQ4Z6795cGfdivPY6323mHUZFJMgTvxaG2iE.eot

CSS3111: @font-face encountered unknown error. 
KlmP_Vc2zOZBldw8AfXD5g.eot

CSS3111: @font-face encountered unknown error. 
zLhfkPOm_5ykmdm-wXaiuw.eot

并偶尔打破整个网站 .

可以做些什么来解决这个问题?

6 回答

  • 25

    当您使用desubroutinized字体时也会发生此错误,没有任何版本的Internet Explorer似乎能够处理 .

    如果使用fonttools包中的pyftsubset生成字体文件,请确保未设置 --desubroutinize 标志 .

  • 2

    我找到了这个答案,它比接受的答案更直接地解决了这个问题,这真的,不应该是答案:)

    现在我们的主要亮点 - “CSS3111:@ font-face遇到未知错误” . 这个错误很模糊 . 如果你再次查看MSDN,你会看到它的描述说:“层叠样式表”的“Web Open字体格式(WOFF)”和“嵌入式OpenType字体(EOT)”遇到了一个未知问题( CSS)字体“ . “未知问题”对我来说听起来不太好 - 我该如何解决一个未知问题?幸运的是,我们在这里给出了一个提示 . 它说:“检查字体的来源” . 实际上,CSS3111通常是由字体的二进制源问题引起的 . 例如,流行的在线TTF到EOT转换器之一产生具有不符合Microsoft标准的NAME表的EOT文件,这导致EOT字体从未在IE中加载并产生CSS3111错误 . 因此,当您体验CSS3111时,尝试使用不同的TTF到EOT转换器或字体生成器总是好的 .

    资料来源:http://www.marinbezhanov.com/web-development/16/how-to-embed-webfonts-properly-and-how-to-solve-the-ambiguous-css3111-font-face-encountered-unknown-error/

  • 0

    我使用下面的 @font-face 解决了IE 9上的问题:

    @font-face {
        font-family: Gidole;
        src: url('Gidole-Regular.woff2') format('woff2'),
             url('Gidole-Regular.woff') format('woff');
    }
    
  • 0

    我们发现由于新的Windows 10策略,您会收到相同的错误 . 如果在Windows 10 IE11上发生错误,解决方案可以是:

    IE 11: error CSS3111 in my own code, and google.com/fonts doesn't render any fonts

  • 3

    评论EOT字体的第二个源声明对我有用 . 确保你在第一个声明“src:url(”../ fonts / webfonts / Helvetica Neue.eot“);”

    在Chrome,Firefox,Sarafi,IE9-10-11上测试过 .

    @font-face {
      font-family: 'Helvetica Neue';
      font-style: normal;
      font-weight: 400;
      src: url("../fonts/webfonts/Helvetica Neue.eot");
      src: local("Helvetica Neue"), local("Helvetica Neue"),
        /*url("../fonts/webfonts/Helvetica Neue.eot?#iefix") format("embedded-opentype"),*/
        url("../fonts/webfonts/Helvetica Neue.woff2") format("woff2"),
        url("../fonts/webfonts/Helvetica Neue.woff") format("woff"),
        url("../fonts/webfonts/Helvetica Neue.ttf") format("truetype"),
        url("../fonts/webfonts/Helvetica Neue.svg") format("svg"); }
    
  • 1

    希望以下注释对您有用:

    如果您的字体位于远程服务器(例如CDN)上,则无法在所有浏览器中正确呈现 . 这只是部分正确 . 是的,没有明确的“Access-Control-Allow-Origin” Headers ,Firefox和Internet Explorer将不会显示您的webfonts(如果您点击F12在IE中打开开发人员工具并转到控制台选项卡,您将获得CSS3117 :@ font-face失败的跨源请求 . 限制资源访问 . 错误)这只是因为IE和Firefox默认不允许跨域字体 . 另一方面,谷歌浏览器将毫无问题地加载字体,如果你不知道跨源问题,调试这可能会非常令人沮丧 . 虽然我个人也喜欢将我的字体放在同一个域中,但您仍然可以将它们放在远程位置并在所有浏览器中成功加载它们,只要您将此声明添加到主.htaccess文件中:<FilesMatch“\ (TTF | OTF | EOT | WOFF)$“>

    <IfModule mod_headers.c> Headers 集Access-Control-Allow-Origin http://mydomain.com“ </ IfModule>配置 </ FilesMatch>

    See the reference

相关问题