汉字的辅助字体

Aar*_*ken 0 css localization internationalization css3

在CSS中是否有任何方法可以指定仅用于中文字符的不同字体?

具体来说,我有一些用户输入的文本,可以包含标准英语,汉字或两者的混合.我想将Myriad Pro用于非汉字,而Kaiti Std用于所有汉字.

我意识到这可以通过使用JavaScript运行内容,在汉字周围添加span标签然后应用样式来完成,但是还有更标准/更有效的方法吗?

我不关心旧的浏览器,虽然它应该在最新版本的Chrome/Firefox/Safari/IE中使用.

the*_*der 8

您可以unicode-range为font-faces 指定一个,以便每个字体仅适用于unicode字符的子集.

http://dev.w3.org/csswg/css-fonts/#composite-fonts

一个非常基本的实现看起来像(根据需要调整字体文件和格式):

@font-face {
    font-family: 'MyFonts';
    src: local('Kaiti Std');
    unicode-range: U+4E00-9FFF;
}

@font-face {
    font-family: 'MyFonts';
    src: local('Myriad Pro');
}

body {
    font-family: 'MyFonts', sans-serif;
}
Run Code Online (Sandbox Code Playgroud)

一些有趣的浏览器怪癖/解决方案记录在http://24ways.org/2011/creating-custom-font-stacks-with-unicode-range/