Internet Explorer 8忽略CSS中的字体粗细

时间:2013-02-15 09:17:32

标签: css internet-explorer internet-explorer-8 font-face

所以我有问题理解为什么IE在这里忽略了我的CSS。我有这段代码:

<h2>Har du stadsnät eller kan du få det?</h2>

即。没什么奇怪的或任何东西。 这是生成的渲染:

Rendering of HTML

但这是这个HTML的CSS代码:

.rubrik, h2 {
  font-family: Lato;
  font-size: 32px;
  font-weight: normal;
  line-height: 38px;
  font-variant: normal;
  font-style: normal;
  color: #969696; 
}

其中明确指出H2应该具有“正常”作为字体粗细,但渲染文本显然是粗体,这里是正确的渲染(来自Safari)

Correct rendering

因此,使用Internet Explorer 8中包含的开发人员工具,我检查了CSS解释,看起来像这样:

CSS interpretation

据我了解,我在这里看到的是IE8对我的CSS的解释,并且可疑地缺少的是“正常”属性。 IE已将CSS转换为“font”的单行版本,但未包含“普通”部分。现在,字体“Lato”是字体 - 面部字体,字体 - 面部CSS在这里:

@font-face {
    font-family: Lato;
    src: url('/media/fonts/Lato.eot');
    src: local('nofont'), url('/media/fonts/Lato.ttf') format('truetype');
}
@font-face {
    font-family: Lato;
    src: url('/media/fonts/Lato-Bold.eot');
    src: local('nofont'), url('/media/fonts/Lato-Bold.ttf') format('truetype');
    font-weight: bold;
}
@font-face {
    font-family: Lato;
    src: url('/media/fonts/Lato-Bold-Italic.eot');
    src: local('nofont'), url('/media/fonts/Lato-Bold-Italic.ttf') format('truetype');
    font-weight: bold;
    font-style: italic;
}
@font-face {
    font-family: Lato;
    src: url('/media/fonts/Lato-Italic.eot');
    src: local('nofont'), url('/media/fonts/Lato-Italic.ttf') format('truetype');
    font-style: italic;
}

即使在font-weight的font-face声明中指定“normal”,它也不起作用。所以我被困在这里,试图弄明白我做错了不要让IE在声明中包含“font-weight:normal”......任何猜测?提前谢谢......

2 个答案:

答案 0 :(得分:4)

我认为你需要在每个fontface属性上更改font-family: Lato;的名称,因为IE可能会感到困惑。而是尝试添加font-family: Lato-bold;font-family: Lato-italic等。另外,如果字体有粗体(就像Lato一样,并且您在字体属性中引用了),那么您不需要添加font-weight: bold;对于fontface属性,因为字体已经是粗体,添加font-weight只会添加faux-bold并使其看起来很糟糕。

这意味着,对于h2,您只需要font-family: Lato;,如果您希望它是普通的非粗体版本。

答案 1 :(得分:-3)

这可能是继承问题。您是否尝试过使用!important关键字。

font-weight: normal !important;