对谷歌字体使用@import 不适用于 Internet Explorer

Posted

技术标签:

【中文标题】对谷歌字体使用@import 不适用于 Internet Explorer【英文标题】:Using @import for google fonts is not working on internet explorer 【发布时间】:2014-06-19 17:43:55 【问题描述】:

我正在尝试在我的网络上使用谷歌字体,但我在使用 Internet Explorer 时遇到了问题。我正在使用@import,当我用谷歌搜索时,我看到人们这样使用它:

@import url('http://fonts.googleapis.com/css?family=Open+Sans');

问题是我得到的链接是这样的:

@import url(http://fonts.googleapis.com/earlyaccess/opensanshebrew.css);

当我在 IE 上打开网页时,根本没有文字。

我必须获取 webfont 文件吗?或者有没有办法解决这个问题?

【问题讨论】:

您是否在 CSS 文件中声明字体? body font-family: open-sans; 您使用的是哪个版本的 Internet Explorer? 您是否遵循了这些指示? google.com/fonts#UsePlace:use/Collection:Open+Sans 使用这个 jsFiddle 来检查你的 IE。 jsfiddle.net/sheriffderek/c662j 不,使用 this jsFiddle 来检查你的 IE:jsfiddle.net/f365cn7j(如果 !!! 有圆点和尖锐的顶部边缘,你很好,否则你'正在使用 Arial 什么的) 【参考方案1】:

喂 我也遇到了同样的问题,所以我创建了这个字体的新网页版本,它在 IE 上效果很好。 你可以在这里下载: http://assafk.com/staff/open_sans_hebrew/Opes_Sans_Hebrew_Fixed.rar 谢谢! 阿萨夫

下载rar文件后,添加这个css即可使用:

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: italic;
    font-weight: 300;
    src: url(opensanshebrew-lightitalic-webfont.eot);
    src: url(opensanshebrew-lightitalic-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-lightitalic-webfont.woff) format('woff'),
    url(opensanshebrew-lightitalic-webfont.ttf) format('truetype');

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: normal;
    font-weight: 300;
    src: url(opensanshebrew-light-webfont.eot);
    src: url(opensanshebrew-light-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-light-webfont.woff) format('woff'),
    url(opensanshebrew-light-webfont.ttf) format('truetype');

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: italic;
    font-weight: 400;
    src: url(opensanshebrew-italic-webfont.eot);
    src: url(opensanshebrew-italic-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-italic-webfont.woff) format('woff'),
    url(opensanshebrew-italic-webfont.ttf) format('truetype');

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: normal;
    font-weight: 400;
    src: url(opensanshebrew-regular-webfont.eot);
    src: url(opensanshebrew-regular-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-regular-webfont.woff) format('woff'),
    url(opensanshebrew-regular-webfont.ttf) format('truetype');

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: italic;
    font-weight: 700;
    src: url(opensanshebrew-bolditalic-webfont.eot);
    src: url(opensanshebrew-bolditalic-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-bolditalic-webfont.woff) format('woff'),
    url(opensanshebrew-bolditalic-webfont.ttf) format('truetype');

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: normal;
    font-weight: 700;
    src: url(opensanshebrew-bold-webfont.eot);
    src: url(opensanshebrew-bold-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-bold-webfont.woff) format('woff'),
    url(opensanshebrew-bold-webfont.ttf) format('truetype');

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: italic;
    font-weight: 800;
    src: url(opensanshebrew-extrabold-webfont.eot);
    src: url(opensanshebrew-extrabold-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-extrabold-webfont.woff) format('woff'),
    url(opensanshebrew-extrabold-webfont.ttf) format('truetype');

@font-face 
    font-family: 'Open Sans Hebrew';
    font-style: normal;
    font-weight: 800;
    src: url(opensanshebrew-extrabold-webfont.eot);
    src: url(opensanshebrew-extrabold-webfont.eot?#iefix) format('embedded-opentype'),
    url(opensanshebrew-extrabold-webfont.woff) format('woff'),
    url(opensanshebrew-extrabold-webfont.ttf) format('truetype');

【讨论】:

户田拉巴!你救了我 它可以工作,但网站负载很重。这条线对我有用,但字体看起来很糟糕 @import url(fonts.googleapis.com/earlyaccess/alefhebrew.css); איזה אלוף אתה... תודה גבר 我最近注意到这个固定版本有一个错误的extra-bold 权重。字母没有对齐,看起来很糟糕。其他权重也可能会受到影响。【参考方案2】:

Sheriffderek 在这些答案之一的 cmets 中是正确的 - 你不应该使用 @import - 但没有解释他/她自己。您可能遇到了跨域问题,并且 IE 和 Firefox 都阻止了这样的远程请求。您必须将内容类型与您的远程请求相关联,以免被阻止。

<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>

这里的'type' 参数是关键——它允许远程请求在IE 和FF 中发生。 CSS是允许做这种跨域链接的,被W3C大神判断为低安全风险。

查看这些链接以获取有关 CORS 的更多信息:

IE的解释:http://msdn.microsoft.com/en-us/library/ie/gg622939%28v=vs.85%29.aspx Mozilla 的想法:https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy JS 方面的实现(如果你真的很好奇):http://www.html5rocks.com/en/tutorials/cors/

【讨论】:

这不是每个人都遇到的问题。 Assaf Katz 说得对。 这与@import 声明有什么关系? @NathanHornby - O.P. 不应该使用@import。如果您不使用 at import,则需要确保在远程样式表声明中包含 type 参数,以便它不会针对 CORS 运行。【参考方案3】:

你为什么不使用:

&lt;link href='link-to-your-css/file.css' rel='stylesheet' type='text/css'&gt;

Don't use @import

【讨论】:

&lt;link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'&gt; 我认为你没有抓住重点。查看字体页面:google.com/fonts#UsePlace:use/Collection:Open+Sans 为什么不使用@import!那你想怎么给wordpress添加CDN字体呢?【参考方案4】:

这是Open Sans Hebrew字体本身的问题,这个问题已经在Google Fonts Early Access Discussions论坛上多次报告过,至今没有发布解决方案。考虑使用其他一些“Early Access”(即实验性)字体,例如 Alef 希伯来语。

【讨论】:

我很确定这就是问题所在。我试图在不链接字体的情况下上传我的网页(我已经在我的电脑上本地下载了它们),但我仍然只在资源管理器上遇到这个问题。在 chrome FF 歌剧和 safari 上运行良好。谢谢! 查看@Assaf Katz 的回答,他为我解决了这个问题。也许将其更改为接受?

以上是关于对谷歌字体使用@import 不适用于 Internet Explorer的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 使用 StreamBuilder 提供对谷歌地图的实时更新

使用适度资源对谷歌图书 n-gram 数据集进行处理的最可行选项是啥?

如何对谷歌应用程序脚本进行单元测试?

Geocoder Near 方法是不是对谷歌进行地理编码 api 调用

如何在 PHP 中对谷歌地理编码 api 进行批量纬度/经度查找?

谷歌地图风格不适用于韩国地区