任何人都可以解释为什么当我设置lang =“ar”时,字体系列选择sans-serif字体,而当它是lang =“en”时,它选择Open Sans。
<html lang="ar"> <head> <link href="https://fonts.googleapis.com/css?family=Open+Sans|Roboto" rel="stylesheet"> </head> <body style="font-family: 'Open Sans',sans-serif;"> السلام عليكم </body> </html>
<html lang="en"> <head> <link href="https://fonts.googleapis.com/css?family=Open+Sans|Roboto" rel="stylesheet"> </head> <body style="font-family: 'Open Sans',sans-serif;"> السلام عليكم </body> </html>
解决方法
发生了什么是
Arabic characters are not supported by Open Sans.所以在你的两个片段中,Open Sans根本没有被应用,浏览器直接进入后备字体。
两个片段中字体看起来不同的原因是因为在您的第一个片段中,由于lang标记,浏览器知道该语言是阿拉伯语。它要求系统为阿拉伯语提供最好的sans-serif后备字体,在Mac上这是Geeza Pro Regular。
在您的第二个片段中,浏览器认为该语言是英语,并要求为英语提供最佳的sans-serif后备字体。在Mac上,这是Arial。
Geeza Pro和Arial显然都支持阿拉伯语文本,但根据实际语言,系统会选择其中一种。