Modernizr无法正常工作(在IE8中应用fontface类)

时间:2014-03-22 17:26:33

标签: css font-face modernizr

我24小时都玩得很开心。自昨天提出这个问题以来:http://tinyurl.com/nkoqxfg我一直试图找出问题,最后我将其缩小到以下几个方面:

Modernizr错误地将一类字体应用于IE8中的HTML元素。

这是我的网站,其他所有内容都被删除了:http://tinyurl.com/ose6pj8

请查看源代码。注意最后两个CSS规则:

nav li a {
  color: #FFF;
  font-size: 4px;
}   

.fontface nav li a {
  font-family: 'Qwigley';
  font-size: 30px;
  line-height: 56px;
}

在任何支持@ font-face的现代浏览器中,您应该会看到使用Google字体“Qwigly'脚本,以及30px的正确字体大小。在IE8和任何不支持@ font-face的浏览器中,您可能会看到4px的小字体大小。 (在这种情况下,Modernizr应该将无字体类应用于HTML元素)

但事实并非如此。 Mordernizr错误地应用了字体类,因此我获得了巨大的30px Arial文本。刚检查过,IE7也出现了同样的问题。

为什么?

1 个答案:

答案 0 :(得分:1)

  在IE8和任何不支持@ font-face的浏览器中,你会看到4px的小字体大小。 (在这种情况下,Modernizr应该将无字体类应用于HTML元素)

IE 8 支持@font-face - 所以期待Modernizer 设置该类只是你出错的地方这里

警告是IE< 9仅支持EOT格式的字体 - 因此请注意您将该版本嵌入到字体嵌入中;

或者,只有当您通过条件注释为lt-ie9元素设置的html时才使用应用自定义字体的CSS选择器,例如< / p>

html:not(.lt-ie9) .fontface nav li a { /* … */ }

(IE无论如何都只支持v9中的:not()选择器。)