IE 10 不加载字体

Posted

技术标签:

【中文标题】IE 10 不加载字体【英文标题】:IE 10 not loading fonts 【发布时间】:2013-10-04 03:55:23 【问题描述】:

相关网站链接:http://qbtei.com/nationalretail/public

在我的 fonts.css 中,我正在加载一堆像这样的字体:

@font-face 
    font-family: GothamBook;
src: url('../fonts/Gotham-Book.otf');
src: url( ../fonts/Gotham-Book.otf ); /* IE */
    

@font-face 
    font-family: GothamBookItalic;
src: url('../fonts/gothambookitalic.otf');
src: url( ../fonts/gothambookitalic.otf ); /* IE */
    

@font-face 
    font-family: GothamBold;
    src: url('../fonts/gothambold.otf');
    src: url( ../fonts/gothambold.otf ); /* IE */

在 Firefox/chrome 中,这些字体没有问题,但在 IE 10 中,当我检查元素时,此 css 文件显示为空且未加载字体

我尝试使用 http://www.fontsquirrel.com/tools/webfont-generator 创建一个新的字体 css 表,看起来像这样,但这最终在 firefox、chrome 或 Internet Explorer 中都不起作用

@font-face 
    font-family: 'gotham_boldregular';
    src: url('gothambold-webfont.eot');
    src: url('gothambold-webfont.eot?#iefix') format('embedded-opentype'),
         url('gothambold-webfont.woff') format('woff'),
         url('gothambold-webfont.ttf') format('truetype'),
         url('gothambold-webfont.svg#gotham_boldregular') format('svg');
    font-weight: normal;
    font-style: normal;


我在 css 中这样使用我的字体:

.nav-text
    font-family: GothamLight;
    font-size: 21px;
    color: #d9e3e9;
    font-weight: 100;
    position: absolute;
  right: 28px;
  top: 13px;

【问题讨论】:

我猜你有这个,但只是为了仔细检查你的网站是否包含 DOCTYPE?即 是的,我必须仔细检查一下 好吧,我就是这么想的。如果您使用开发者工具(F12 键)并将浏览器模式更改为 IE 8 或 9,图像会加载吗? 如果我在 IE 10 兼容模式下运行它会加载一些字体,但网站的其余部分会爆炸 嗯。每个字体需要两次相同的 src 吗? 【参考方案1】:

这不起作用,因为所有版本的 IE 都不支持 .otf 字体格式 - 请参阅:https://caniuse.com/ttf

试试下面的方法:

@font-face 
    font-family: "GothamBook";
    src: url("../fonts/Gotham-Book.eot");
    src: url(".../fonts/Gotham-Book.eot?#iefix") format("embedded-opentype"),
    url("../fonts/Gotham-Book.woff") format("woff"), 
    url("../fonts/Gotham-Book.ttf") format("truetype"), 
    url("../fonts/Gotham-Book.svg#Gotham-Book") format("svg");

您使用 fontsquirrel 的 webfont 生成器生成的版本中的路径设置是否正确?字体系列名称也看起来错误。我想应该是“GothamBold”。

还要记住适当的字体许可证......! ;-)

在您的 CSS 文件中使用字体时,您至少应该像这样添加一个通用字体系列:

font-family: GothamLight, "sans-serif";

或另外一种替代字体(可能在每个平台上都可用)

font-family: GothamLight, Arial, Helevetica, "sans-serif";

【讨论】:

【参考方案2】:

你有错误的路径参考,在这段代码中

@font-face 
    font-family: 'gotham_boldregular';
    src: url('gothambold-webfont.eot');
    src: url('gothambold-webfont.eot?#iefix') format('embedded-opentype'),
         url('gothambold-webfont.woff') format('woff'),
         url('gothambold-webfont.ttf') format('truetype'),
         url('gothambold-webfont.svg#gotham_boldregular') format('svg');
    font-weight: normal;
    font-style: normal;


据我所知,所有字体都放在字体文件夹下。如果这不起作用。

尝试解决这些问题

    从字体文件和字体名称引用中删除 _ 或 -

    将其放在 webserver 或 localhost webserver 上进行测试。

    防弹语法,你已经做到了。

    检查所有字体不为0KB

    尝试将字体 ttf 转换为 otf,然后再转换为 eot。

仍然无法正常工作,则无法转换为 webfont。

【讨论】:

【参考方案3】:

您在实际使用它们的 style.css 之前加载字体样式表:

<link href="css/style.css" media="all" rel="stylesheet" type="text/css" />
<link href="css/fonts.css" rel="stylesheet" />

只需先加载 fonts.css,然后加载 style.css。

【讨论】:

【参考方案4】:

我找到了一个非常好用的 otf 到 woff 转换器

http://everythingfonts.com/otf-to-woff

另外一篇关于 SO here的有用帖子

谢谢大家!

【讨论】:

【参考方案5】:

字体生成器是最好的解决方案。 我正在使用字体 quirrel http://www.fontsquirrel.com/tools/webfont-generator。

Step1:下载字体并保存到本地系统。

第二步:得到 fontssquirrel 网站。然后单击添加字体按钮以从本地系统浏览您的字体。

第三步:浏览后从 fontsquirrel 下载你的网络字体。

第四步:解压压缩包。您生成的字体带有演示文件。

sep5:你可以关注那个演示文件。

步骤6:请为您的文件提供正确的网址。这很重要。

【讨论】:

这并不能解决问题中的问题。请尝试解决 OP 提出的问题,不要回答尚未提出的相关问题。【参考方案6】:

经过大量挖掘,我找到了IE加载字体失败的另一个原因: 响应标头可能包含 Pragma: no-cache Cache-Control: no-cache 另见@font-face EOT not loading over HTTPS

【讨论】:

以上是关于IE 10 不加载字体的主要内容,如果未能解决你的问题,请参考以下文章

字体无法在 IE8 上加载

?#iefix 如何解决 IE6-IE8 中的网页字体加载问题?

?#iefix 如何解决 IE6-IE8 中的网页字体加载问题?

IE 8 及更早版本不加载 CSS [关闭]

@Font-Face 不会在 IE 中通过 https 加载

兼容模式下ie9和ie10显示样式在不兼容模式下为啥不加载css样式?