0

我有一个希伯来语/英语网站,它使用两种添加了@font-face. 使用unicode-range我已经定义了一种字体仅适用于希伯来字符,另一种字体适用于所有其他字符。

问题在于我的希伯来字体中的字符看起来明显小于拉丁字体中的字符。简单的解决方案是替换其中一种字体并找到其他具有相似大小字符的字体。但不幸的是,我必须保留这两种字体。不能改变它们。所以我的问题是。有没有办法例如定义拉丁语 unicode-range 中的所有字符都应该具有font-sizeof 0.8em

请记住,一个元素可能同时包含希伯来语和拉丁语字符。因此,根据整个站点的语言设置不同类的解决方案将不起作用。它真的必须在“每个字符”级别上定义。

编辑:根据评论中的请求,我正在添加一个代码示例:

/* --- --- --- Defining font: --- --- --- */
@font-face {
  font-family: HebrewFontName;

  src: local('HebrewFontName'),
  local('HebrewFontName'),
  url(/fonts/HebrewFontName.otf);
  font-weight: 300;
  unicode-range: U+0590-05FF,
  U+0030-0039;
}

@font-face {
  font-family: HelveticaNeue;

  src: url(/fonts/HelveticaNeueDeskUI-01.ttf);
  font-weight: 400;
}

/* --- --- --- Using font: --- --- --- */
.someElement {
  font-family: 'MigdalRegular', 'HelveticaNeue';
}
4

1 回答 1

1

你目前不能。

unicode-range属性用于确定是否下载字体。它不会过滤要应用字体的字符范围。

...如果页面不使用此范围内的任何字符,则不下载字体;如果它至少使用一个,则下载整个字体。

该描述符的目的是允许对字体资源进行分段,以便浏览器只需要下载特定页面的文本内容所需的字体资源。例如,具有许多本地化的站点可以为英语、希腊语和日语提供单独的字体资源。对于查看英文版页面的用户,无需下载希腊文和日文字体资源,节省带宽。

–– MDN unicode-range

您最好的选择是为不同的语言段使用不同的字体:通过span在段上插入。

于 2020-07-17T02:58:37.223 回答