html - 风格化文本以针对不同的语言使用不同的字体?

标签 html css internationalization

有没有办法对 HTML 页面上的文本进行样式化,使其自动为不同的语言使用不同的字体?我的网站同时使用英语和阿拉伯语。我想根据显示的语言使用不同的字体。

假设我有这样一段话:

هذه الجملة مكتوبووي اللغ٩ العربي٩ ولكن الوملو التالية مكتووبة وي الإنجليووويوي历。上一句是阿拉伯语,而这一句是英语。

我希望阿拉伯语句子以 X 字体呈现,而英语句子以 Y 字体呈现。

有没有一种方法可以做到这一点,而无需根据服务器端关于其语言的知识手动为每组文本赋予不同的 CSS 样式,即将每个句子包装在不同的 CSS 类中?

谢谢

最佳答案

Jukka 是对的,您无法自动区分语言。您可能需要在适当的地方设置 lang 属性。您有以下选择:

  • 使用 CSS2 :lang 伪选择器;
  • 使用 CSS3 :ltr 或 :rtl 伪选择器根据文本方向性设置字体(实际上,这不是最好的主意);
  • 使用 CSS3 :script 伪选择器。据我所知,您实际上可能正在寻找这个。

第一个解决方案的代码片段是这样的:

body {
  font-family:Palatino,serif;
}

:lang(ar) {
  font-family: "Traditional Arabic",serif;
}

对于第二种选择,我已经说过这不是一个好主意。这不是,因为许多语言都是从左到右或从右到左编写的。您肯定不想为希伯来语文本使用“传统阿拉伯语”字体。我提到这个选项,因为它可以帮助您解决其他问题。

对于最后一个:

:script(Arab) {
  font-family: "Traditional Arabic",serif;
}

外部链接

关于html - 风格化文本以针对不同的语言使用不同的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8838075/

相关文章:

javascript - autoClick同时报错

html - 围绕顶部导航栏和文本框以及图像定位的 HTML/CSS 问题

jquery - 如何对 iframe 子元素应用 3D 变换?

javascript - 如何在javascript中隐藏单个div的段落

CSS:固定背景附件不会缩放到元素边界

Python i18n 使用 pygettext.py

JavaFX 国际化与翻译字符串中的变量

c# - WPF DatePicker Watermark 使用了错误的语言,但 Dateformat 是正确的

javascript - 当我使用 javascript 获取 html 中 p-tag 的值时,我尝试向该值添加特定数字,但输出给出 NaN

javascript - 单击时如何更改文本的颜色