Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet Explorer 8忽略CSS中的字体大小_Css_Internet Explorer_Internet Explorer 8_Font Face - Fatal编程技术网

Internet Explorer 8忽略CSS中的字体大小

Internet Explorer 8忽略CSS中的字体大小,css,internet-explorer,internet-explorer-8,font-face,Css,Internet Explorer,Internet Explorer 8,Font Face,所以我很难理解为什么IE在这里忽略了我的CSS。我有以下代码: <h2>Har du stadsnät eller kan du få det?</h2> 这清楚地表明H2应该有“正常”字体大小,但呈现的文本明显粗体,这是一个正确的呈现(来自Safari) 因此,使用Internet Explorer 8附带的开发工具,我检查CSS解释,如下所示: 据我所知,我在这里看到的是IE8对我的CSS的解释,令人怀疑的是缺少了“normal”属性。IE已将CSS转换为“字体

所以我很难理解为什么IE在这里忽略了我的CSS。我有以下代码:

<h2>Har du stadsnät eller kan du få det?</h2>
这清楚地表明H2应该有“正常”字体大小,但呈现的文本明显粗体,这是一个正确的呈现(来自Safari)

因此,使用Internet Explorer 8附带的开发工具,我检查CSS解释,如下所示:

据我所知,我在这里看到的是IE8对我的CSS的解释,令人怀疑的是缺少了“normal”属性。IE已将CSS转换为“字体”的单行版本,但未包含“正常”部分。现在,字体“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;
}

即使在字体大小的字体声明中指定“正常”,它也不起作用。所以我被困在这里,试图找出我做了什么错误,没有IE包括“字体重量:正常”在声明中的H2。。。猜猜看?提前感谢…

这可能是继承问题。你有没有试过把它放在桌子上!重要的关键词

font-weight: normal !important;

我认为您需要更改
字体系列的名称:Lato在每个fontface属性上,因为IE可能会混淆。相反,试着把
font-family:Lato-bold
font-family:Lato-italic
等。此外,如果字体有粗体(与Lato一样,并且您已在fontface属性中引用),则无需添加
font-weight:bold
对于fontface属性,因为字体已经加粗,添加字体权重只会添加faux bold并使其看起来不好


这意味着对于您的
h2
,您只需要将
字体系列:Lato如果您希望它是普通的非粗体版本。

尝试将字体名称放在引号中!哦,你用同一个名字多次定义字体系列,不确定IE是否如此喜欢。尝试使用
font-weight:100
@reinder引用字体名称没有什么区别,IE选择了正确的字体,而不仅仅是正确的重量。@Mr.Alien是的,这确实在CSS解释中包含了“100”,但在实际渲染中似乎没有改变任何东西,可能是因为字体声明中没有相应的字体权重:100。我将用这个测试一些东西…这更像是一个黑客,但你可以尝试定义你的字体名称,如Lato normal,Lato bold等,并在你想加粗或不想加粗的地方使用它们…事实上,我有,这也不包括在解释中,也不改变呈现,不幸的是。显式声明不能被继承覆盖;这是CSS继承概念的一部分,但这肯定违反了字体面规范。如果是这样的话,您将如何获得粗体内联?然后,我必须特别地将B和STRONG设置为字体系列:如果没有指定Lato的粗体状态,则必须将B和STRONG设置为字体系列:Lato Bold?是的,将B和STRONG设置为字体系列为Lato Bold。如果您只是将其设置为字体大小:粗体;然后你会得到双倍加粗(字体的独特设计加粗,以及浏览器的人造加粗),这看起来不是很好。我也通常设置h1,h2,h3等为字体系列:拉托粗体;当使用字体时也是如此。这对支持/兼容性来说应该不是太大问题,因为IE6支持@font-face,其他浏览器的大多数版本也支持@font-face:
font-weight: normal !important;