CSS谷歌字体-斜体在IE中变长

CSS谷歌字体-斜体在IE中变长,css,internet-explorer,fonts,Css,Internet Explorer,Fonts,我有一个关于谷歌字体的问题。我使用的是来自的字体“Lato”,它在Firefox、Chrome、IE9中似乎工作得很好,但在IE7和IE8中,斜体版本看起来很长 我没有做任何疯狂的事,只是用 font-style:italic; font-weight:700; 并包括使用以下字体的字体: <link href='http://fonts.googleapis.com/css?family=Lato:400,700,700italic,900italic' rel='styleshee

我有一个关于谷歌字体的问题。我使用的是来自的字体“Lato”,它在Firefox、Chrome、IE9中似乎工作得很好,但在IE7和IE8中,斜体版本看起来很长

我没有做任何疯狂的事,只是用

font-style:italic; font-weight:700;
并包括使用以下字体的字体:

<link href='http://fonts.googleapis.com/css?family=Lato:400,700,700italic,900italic' rel='stylesheet' type='text/css'>

这是谷歌字体的已知问题还是我做错了什么


谢谢

两个示例显示的斜体字体不同。我猜IE7/8是人为的斜体。我进一步猜测,这是因为字体重量与字体文件中的实际重量不匹配;试着改用500的字体。

无论出于何种原因(也许有人可以帮助解释原因),谷歌已经决定不向IE用户提供常规字体以外的任何字体变体。这种行为似乎由用户代理控制-如果在Firefox vs IE中加载CSS url(在您的情况下),您将看到只有一个
@font-face
块返回到IE

因此,最简单的解决方法是在Firefox中加载该url并将CSS复制/粘贴到您自己的CSS文件中,而不是直接从Google提供服务。现在IE也可以访问所有字体变体。。。但从技术上讲,你正在破坏CSS文件和底层字体文件之间的链接,这永远不会改变,但这完全取决于谷歌的判断

不幸的是(可能是他们推理的一部分),即使在那时,字体也没有表现得特别好。在我的测试中,半黑体字显示的粗体字比它应该显示的粗体字要多,斜体字之间的间隔似乎有点太远。至少在没有额外变体的情况下,它看起来仍然比IE呈现的假斜体斜体字体更令人愉悦

编辑: 经过进一步的研究,我发现了一个很好的页面,它详尽地记录了这个问题。基本上,IE在定制字体系列方面是非常有限的——要想成功使用IE,唯一的办法就是在IE中将变体定义为单独的字体系列,然后在其他浏览器中使用
字体重量
字体样式
的不同字体。这将给您提供通用的兼容性

edit2:IE字体的URL与其他浏览器的不同(IE使用eot格式而不是woff)。如何使其适用于您的字体的详细过程如下:

  • 在firefox/chrome/etc中打开并将css复制到新文件中,或复制到您的ie专用样式表中
  • 检查并取出所有“本地”和“格式”src定义,只剩下“url”部分
  • 对于字体样式表url中指定的每个变体(在您的示例中,这些变体将是400、700、700和900斜体),在IE中仅使用此变体加载字体样式表,并在文本编辑器中打开生成的CSS。例如,加载以获取superbold italic变体
  • 在新样式表中找到匹配的变体(字体样式和字体重量属性应该匹配),并将woff
    src
    url替换为IE的eot url。另外,给字体一个不同的系列-我建议像Typekit一样使用样式和重量作为后缀,使开放式SAN成为开放式SAN i9,依此类推
  • 对所有剩余的变体执行此操作
  • 有条件地包括这个新样式表,以取代您已经在其他浏览器中使用的样式表
  • 无论您在css中使用了
    font-style
    font-weight
    ,都要添加
    font-family
    ,并引用新的族名和其他浏览器看到的正确的族名。例如:
    font系列:“opensansi9”、“opensans”;字号:900;字体:斜体。这将使用字体系列名称与IE兼容,并在其他浏览器中使用基本系列+变体

这是一个老问题,但我在谷歌上搜索了一个小时,找到了一个简单的解决办法,解决了IE8中的这个冒牌黑体字和冒牌斜体字。 以下是对我有效的方法: 我没有一次加载所有字体,而是逐个加载。我更喜欢css文件中的@import方法,所以它是这样的:

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

不走运。在正确的字体中它变成斜体,但不是粗体。@Drew,我想这是我的观点,尽管我没有明确地说出来。您不能使用字体本身不存在的字体属性组合,并期望它能正确显示。如果您单击上面的链接,则有一个粗体700斜体和粗体900斜体的选项。。我把这两个都包括在我的链接中。@Drew,我收回我说的话。根据谷歌的说法,这种字体确实包含了700磅的斜体版本。但是谷歌预览没有在我的IE8中正确显示——我只显示了两个权重,两个权重中的斜体看起来都是人造的。嗯,我刚刚在IE8上浏览了谷歌网页的字体页面,它们看起来都很完美。我只想说声谢谢,因为我试过了,效果非常好!我不确定它是否适用于所有字体,但我经常使用开放式SAN,它肯定适用于那个字体。