有没有办法对 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;
}
外部链接
- W3C i18n article on lang selector
- Gunnar Bittersmann presentation来自 Multilingual Web Workshop in Limerick - 这就是这些代码片段的来源(我可以轻松地自己创建它们,但决定咨询专家)。
关于html - 风格化文本以针对不同的语言使用不同的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8838075/