Use different fonts for Latin characters and Japanese characters with CSS
我们正在创建同时使用日语和英语的网站。我们希望摆脱无法使用ClearType的默认日语字体。有没有办法告诉浏览器在同一页面上对日语字符(如Meiryo)使用不同的日语字体,而对于拉丁字符(如Helvetica)仅使用另一种字体?我们不希望任何英语单词使用Meiryo字体。
实际上,我们从本文的CSS中首先使用了一个技巧来指定英文字体:http://www.lukew.com/ff/entry.asp?118
但是,这在IE中不起作用。即使我们先指定Helvetica,Verdana或任何其他广泛使用的字体,然后再在CSS中指定日文字体,IE仍将日文字体用于英语单词。 Firefox,Chrome等可以正常工作。
(如果可能的话,我们希望不要诉诸于将每个英文单词package成一个范围)之类的内容。
我已经使用\\'unicode-range \\'CSS属性解决了我的问题。
您可以在此处找到详细信息:
https://developer.mozilla.org/en/docs/Web/CSS/@font-face/unicode-range
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /* bengali */ @font-face { font-family: 'Atma'; font-style: normal; font-weight: 400; src: url(https://fonts.gstatic.com/s/atma/v2/tUcVDHNCVY7oFp6g2zLOiQ.woff2) format('woff2'); unicode-range: u+0980-09FF; } body { font-family: 'Atma', arial, sans-serif; font-size: 18px; } |
1 2 | <p><center>[wp_ad_camp_2]</center></p><p>Example is better than precept.</p> <p>à|‰à|aà||à§?à|?à§?à|° à|?à§?à§?à§? à||à§?à|·à§?à|?à|?à|¨à§?à|¤ à|-à|?à|2à§?।</p> |
如果您想跨浏览器使用它,就无法绕过用类和字体标记每个语言部分。仅靠CSS不能做到这一点。
您可以手动或自动应用语言课程。手动可能需要大量工作来支持和维护,但是功能很强大。通过使用后端脚本或Javascript,可以动态地完成此操作,方法是扫描字符串以查找属于某些unicode字符块的字符,并相应地应用语言类。
您可以在此处找到块定义(日语为平假名和片假名):http://www.fileformat.info/info/unicode/block/index.htm
我建议这样做的后端方法,因为在页面加载期间更改页面上的字体可能会导致元素闪烁或移动。
为英语和日语文本创建css类。
1 2 | .ja { font-family: meiryo, sans-serif; } .en { font-family: arial, verdana, sans-serif; } |
如果整个页面都是日语,请在body标签上添加class = " ja ",如果内容混合,则将class = " ja "添加到包含日语文本的html元素中,例如:
1 | <td class="ja">?—¥???èa?</td> |
您如何告诉页面要在屏幕上打印哪种语言?
如果要获取变量,则不能将此变量用作用于主体div的类。
1 | <body class="english"> |
或
1 | <body class="japanese"> |