想象一下,你想设计一个网站,帮助伊朗人(波斯语(波斯语))学习英语。英语和波斯语(波斯语)的字母没有任何相似之处,因为波斯语是从右到左书写的,而英语是从左到右书写的,并且完全不同。我没有找到任何标签来设置所有波斯语(波斯语)单词的字体和其他字体的所有英语单词。例如,自动设置B-Nazanin为波斯语,设置Times New Roman为英语,不需要每次为每个单词定义字体,只需一次定义这些字体。我们能做什么?
谢谢。
一个可能的选择是在网站以波斯语显示时,给<html>
或文档中的任何其他元素赋予lang="fa-IR"
属性/值。
因此,您可以使用[lang|="fa"]
选择器覆盖CSS声明。
例如:
[lang|="fa"] p { font-family: "B-Nazanin"; }
<html lang="fa-IR">
<p> سلام دنیا </p>
</html>
或:
p[lang|="fa"] { font-family: "B-Nazanin"; }
<p>Hello World!</p>
<p lang="fa-IR">سلام دنیا!</p>
@font-face { /* Persian Font */
font-family: 'MyFont';
src: url(Fonts/BYekan.ttf);
unicode-range:U+0600-06FF;
}
@font-face { /* english font */
font-family: 'MyFont';
src: url(Fonts/ALGER.TTF);
unicode-range: U+0020-007F;
}
使用方法:
body{
font-family: 'MyFont';}
提示:针对不同的语言,您可以使用不同的“unicode-range”。
:lang(ta) {
font-family: Latha, "Tamil MN", serif;
font-size: 120%;
}
同时不要忘记在 HTML 代码中使用 lang 属性。
<p lang="en">Ceci est un paragraphe.</p>
html
元素上*使用lang
*。请参见http://www.w3.org/TR/WCAG20-TECHS/H57.html。 - danielnixonclass
而不支持lang
? - danielnixonlang
HTML属性的事情,因为它被定义为声明性的,而不是具有任何特定效果。但是当它用于描述目的时,CSS对[lang = ...]
或: lang(...)
选择器的支持变得至关重要。前者得到了很好的支持(除非您需要关心IE 6),但是后者更方便的选择器需要IE 8或更高版本和“标准模式”。 - Jukka K. Korpela对于波斯语内容,请使用B-Nazanin
或其他字体,对于英语内容,请使用Open sans
。
如果您想将波斯语设置为B-nazanin
,并将英语设置为open sans
,请在CSS中尝试以下代码:
body{
font-family: "Open sans","B-nazanin";
}
<div class="farsi">
中,将英文放在<div class="english">
中。<span>
标记其他语言中的单词。<p lang="en">
,并在文档中使用 <html lang="fa">
。 - danielnixon