1

所以 IE9 在使用谷歌字体时会吐出一个错误,包括如下:

<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,900" rel="stylesheet" type="text/css" />

IE9 吐出一个错误,即使字体仍然可以正常加载:

CSS3111: @font-face encountered unknown error. 

如果我不是在其他人的网页上编写 iframe 的内容,我很乐意忽略此错误。:(

在本地托管 EOT 文件可以解决 IE 的问题:

< !--[if IE 9]>
< link rel="stylesheet" href="/survey/css/lato-ie.css" type="text/css" />
< ![endif]-->

在那个文件中..

@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 400;
    src: url("/Lato-Reg-webfont.eot") format("embedded-opentype");
}
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 900;
    src: url("/Lato-Bla-webfont.eot") format("embedded-opentype");
}

将它包含在 IE9 中,错误消失了,效果很好。

现在我的问题是,我需要为除 IE9 之外的所有人包含谷歌字体样式表。例如,我不能这样做:

< !--[if !IE 9]>
< link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,900" rel="stylesheet" type="text/css" />
< ![endif]-->

或者 Firefox 甚至不会看到该死的包含。

IE 的开发者是否在密谋浪费我们所有的时间?

4

2 回答 2

3

你在正确的轨道上,你只需要使用一个底层显示的条件注释:它会在 IE 中隐藏它,但会被其他浏览器拾取。

于 2012-08-12T01:32:20.770 回答
0

一个问题,您是否尝试在本地查看文件?

谷歌字体不会在本地呈现,即使它们链接到绝对外部链接。(如果是 IE)

localhost/project/index.html = good
C:\Project\index.html = bad
于 2012-08-09T18:00:06.710 回答