开发者社区> 问答> 正文

CSS中,如何指定中文楷体,英文Italic?

如题,中文当中有时用楷体与英文中的Italic部分相对应。
但是如果使用font-style: italic的话,中文也会跟着变为斜体。

对于一段中英文混排的文字,怎么才能仅使其中的英文部分变为Italic,而中文的效果不变?

展开
收起
a123456678 2016-05-26 17:46:14 2817 0
1 条回答
写回答
取消 提交回答
  • 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. 中文文字



    值得注意的是,CSS只能根据lang属性标定好的语言来分配样式,而不能承担语言判断的任务。你需要自己使用各种方法把(和文档语言不一致的)其他语言部分包裹标定好。

    因为有一点是容易混淆,但必须明确的是:语言和文字其实是两回事。我们中文开发者的确习惯于看到汉字就是汉语,看到A~Z就是英语。但实际上汉字和拉丁字母(A~Z)都只是文字系统,而不是确定语言的标志。

    同一套文字系统往往是多语言共享的,这样就造成了拿出一段文字,如果不理解其意义就无法反推出是哪一种语言的结果。例如:police可能是英语或法语;文字(U+6587 5B57)可能是汉语或日语*。

    说了半天,就是为了说明“CSS和HTML只能标注,而不可能鉴别语言。一个CSS全自动标定英语文本”的想法是不可行的。

    也许给拉丁字母一律标注lang="en"的步骤可以自动化,但也只好请题主自己动手。

    • CJK统一表意文字系统保证了中(含各种变体和方言,含简正两种书写系统)、日、韩、越这几个涉及汉字的语言中,只要是字形等同(或可以认为是等同)的同一汉字,就统一编为同一个编码。
      这可以保证同一个汉字的同一种字形,不因为语言的不同而被无意义的做出多个编码。

    这除了便利性(不言而喻)之外,更有一个额外的优点:维护了文字编码的语言无关性,保证语言是语言,文字是文字,两者不被混淆在一起。

    2019-07-17 19:16:41
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载