字符。我在正在创建的Cordova / Android混合应用程序中使用Orbitron font-完全是因为它紧凑且具有我所追求的干净,未来派外观。但是,不久前我意识到Orbitron是一种相当有限的字体,仅支持基本的拉丁字符集。

我即将着手改用Google创建的Noto *系列字体,因此不再有豆腐-豆腐这个字眼是印刷工人用来描述当字体没有字体时出现的空白矩形框的术语。要显示的合适字形。

将Noto Sans,Noto Sans Naksh(阿拉伯语)和Noto Sans CJK(远东)字体家族整合到我的应用中会增加字体的大小,因此我决定首先在Windows上的Chrome浏览器中进行实验(一段时间以来 Android在其混合应用程序中使用的源自Chrome,因此该测试具有代表性。

我的测试标记如下所示。即使将Orbitron指定为默认的重要字体,Chrome仍可以很好地显示“ Hello World!”的文本。西班牙语(Orbitron没有西班牙语反感叹号),阿拉伯语,简体中文,日语和泰米尔语(在Orbitron中均不存在)。



*{font-family:orbitron !important;}

<link href="https://fonts.googleapis.com/css?family=Orbitron&display=swap" rel="stylesheet">

<div id='english'>Hellá</div>
<div id='spanish'>¡Hola Mundo!</div>
<div id='arabic'>مرحبا بالعالم!</div>
<div id='sch'>你好,世界!</div>
<div id='jp'>こんにちは世界!</div>
<div id='tamil'>வணக்கம் உலகம்!</div>





显然,Chrome在Orbitron中找到Tofu时,正在默默地使用可靠的备用。我的问题


豆腐替代品如何发生?
依靠自动豆腐替换是否可以?还是建议使用一些明智的CSS和精心选择的字体家族来处理特定于语言的问题?

最佳答案

在Chrome中,您可以检查元素,然后切换到“计算”标签,它将显示“渲染字体”。 Chrome浏览器(我认为大多数现代浏览器都将使用该字体显示所有受支持的字符,并且会静默使用本地字体显示其余字符。

例如。对于日语,它将使用“ Yu Gothic”表示5个​​字形,使用“ SimSun”表示3个字形。

css - 浏览器如何处理“ bean 腐”字符-LMLPHP

对于泰米尔语,它使用“ Orbitron”中的2个字形(空格和感叹号),其余12个字形在“ Nirmala UI”中呈现:
css - 浏览器如何处理“ bean 腐”字符-LMLPHP

对于西班牙语,它仅渲染“ Orbitron”,我不确定为什么,但是我猜它基本上使用现有的感叹号并对其进行旋转。

使用哪种本地字体文件可能会因浏览器和操作系统而异。

关于css - 浏览器如何处理“ bean 腐”字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57800478/

10-09 10:11