我已经思考了相当长一段时间,关于是什么原因导致一些IE版本将@font-face字体呈现为斜体,即使样式被声明为正常。
我的主要想法是IE在渲染页面之前不会下载每个字体文件。
在我的CSS中,我声明了同一字体的不同字形的字体文件-从细斜体到极细字形。它们都使用相同的设置进行声明:
@font-face { /* THIN ITALIC */
font-family: Unit;
src: url("../gfx/fonts/UnitWeb-ThinIta.eot")
src: url("../gfx/fonts/UnitWeb-ThinIta.eot?#iefix") format("embedded-opentype"),
url("../gfx/fonts/UnitWeb-ThinIta.woff") format("woff");
font-weight: 100;
font-style: italic, oblique;
font-variant: normal;
}
通过
@font-face { /* ULTRA */
font-family: Unit;
src: url("../gfx/fonts/UnitWeb-Ultra.eot");
src: url("../gfx/fonts/UnitWeb-Ultra.eot?#iefix") format("embedded-opentype"),
url("../gfx/fonts/UnitWeb-Ultra.woff") format("woff");
font-weight: 900;
font-style: normal;
font-variant: normal;
}
您可以看到,斜体字是这样声明的:
font-style: italic, oblique;
,而正常字体是这样声明的:font-style: normal;
。现在,来谈一下渲染问题。 这是IE 9的渲染效果。 这是IE 8有时候的渲染效果。