当定义不仅eot时IE8 @ font-face不工作

时间:2013-08-22 15:39:47

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

在这种情况下,一切正常,字体显示正确:

@font-face {
    font-family: 'CalibriRegular';
    src: url('fonts/calibri.eot');
}

但是当我添加其他格式时,IE8中不会显示字体:

@font-face {
    font-family: 'CalibriRegular';
    src: url('fonts/calibri.eot');
    src: url('fonts/calibri.eot') format('embedded-opentype'),
         url('fonts/calibri.woff') format('woff'),
         url('fonts/calibri.ttf') format('truetype'),
         url('fonts/calibri.svg#CalibriRegular') format('svg');
}

有什么问题?感谢

2 个答案:

答案 0 :(得分:2)

过去我使用@font-face后,我使用了以下内容;

@font-face {
    font-family: 'webfontregular';
    src: url('../fonts/font.eot');
    src: url('../fonts/font.eot?#iefix') format('embedded-opentype'),
         url('../fonts/font.woff') format('woff'),
         url('../fonts/font.ttf') format('truetype'),
         url('../fonts/font.svg#webfontregular') format('svg');
    font-weight: normal;
    font-style: normal;

}

我能看到的唯一区别是#iefix附加到第二个.eot声明的末尾。这可以解决吗?我从未遇到过使用IE7 +的问题。

答案 1 :(得分:1)

在多个src列表中出现的eot上需要一个哈希,通常是?#iefix的约定。 这解释了原因: How does ?#iefix solve web fonts loading in IE6-IE8?

@font-face {
    font-family: 'CalibriRegular';
    src: url('fonts/calibri.eot');
    src: url('fonts/calibri.eot?#iefix') format('embedded-opentype'),
         url('fonts/calibri.woff') format('woff'),
         url('fonts/calibri.ttf') format('truetype'),
         url('fonts/calibri.svg#CalibriRegular') format('svg');
}