如题,中文当中有时用楷体与英文中的Italic部分相对应。
但是如果使用font-style: italic的话,中文也会跟着变为斜体。
对于一段中英文混排的文字,怎么才能仅使其中的英文部分变为Italic,而中文的效果不变?
CSS选择器有一个:lang()伪类,可以指定特定语言的样式:
.article span:lang(zh) { font-style: normal; } / this will be applied to all zh- languages */
.article span:lang(en) { font-style: italic; } / ... applied to all en- languages */
中文文字 This is an English sentence. 中文文字
因为有一点是容易混淆,但必须明确的是:语言和文字其实是两回事。我们中文开发者的确习惯于看到汉字就是汉语,看到A~Z就是英语。但实际上汉字和拉丁字母(A~Z)都只是文字系统,而不是确定语言的标志。
同一套文字系统往往是多语言共享的,这样就造成了拿出一段文字,如果不理解其意义就无法反推出是哪一种语言的结果。例如:police可能是英语或法语;文字(U+6587 5B57)可能是汉语或日语*。
说了半天,就是为了说明“CSS和HTML只能标注,而不可能鉴别语言。一个CSS全自动标定英语文本”的想法是不可行的。
也许给拉丁字母一律标注lang="en"的步骤可以自动化,但也只好请题主自己动手。
这除了便利性(不言而喻)之外,更有一个额外的优点:维护了文字编码的语言无关性,保证语言是语言,文字是文字,两者不被混淆在一起。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。