经测试,微软雅黑在 XP 下的 IE6 和非 IE 浏览器显示有问题,IE7+ 显示正常。
这与文字渲染引擎有关,微软雅黑是为 Vista 以上的系统设计的,用 XP 的老一代 GDI ClearType 技术渲染时会产生问题,而 IE7+ 浏览器和 Vista+ 使用的 WPF ClearType 技术,能正常渲染。(延伸阅读:xp vs. win7 文字渲染效果比较)
所以如要使用微软雅黑,应当只对 IE7+ 和 Vista+ 用户显示,而对其他用户仍以宋体显示。
下面 jQuery 代码检测浏览器是否支持 WPF,如果不支持就给 body 添加一个名为“no-support-wpf”的 class 作为标记。
$(document).ready(function() {
var agt = navigator.userAgent,
winVer = Number(agt.replace(/.*Windows NT (\b[\d\.]+).*/i, '$1')),
ieVer = Number(agt.replace(/.*MSIE (\b[\d\.]+).*/i, '$1'));
$.support.WPF = winVer >= 6 || ieVer >= 7; if (!$.support.WPF) {
$('body').addClass('no-support-wpf');
}
});
然后我们就可以通过 CSS 给支持 WPF 的浏览器使用微软雅黑,不支持的使用宋体。
body { font-family: "Microsoft YaHei"; }body.no-support-wpf { font-family: SimSun; }