在IE9中使@ font-face更有效率

时间:2012-06-06 08:55:14

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

我在网站上使用@ font-face。该代码有效,在Firefox,Chrome和Opera中,@ font-face字体可以完美加载。使用的代码与Font Squirrel生成的代码相同。这是@ font-face代码:

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

}

然后使用以下代码调用字体:

font-family: "OpenSansRegular",Arial,sans-serif;

然而,在IE9中,它仍然有效,但非常笨重。最初加载页面时,首先加载Arial字体,然后在大约1或2秒后加载OpenSansRegular字体。这显然破坏了网站的体验,因为页面加载了一种字体,然后在一段时间后将另一种字体引导到页面上。

有没有办法在使用@ font-face时阻止这种情况发生?

1 个答案:

答案 0 :(得分:1)

在IE 9中,完全支持使用data:属性。在这种情况下,您可以通过以下方式修改CSS:

@font-face {
    font-family: 'OpenSansRegular';
    src: url('data:font/eot;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAggg=='); /* IE 9 */
    font-weight: normal;
    font-style: normal;
}

这将确保仅在CSS完全加载时,它也会加载字体。希望它有所帮助。