如何在PC和手机上显示相同的字体粗细?

时间:2019-07-05 21:20:20

标签: html css mobile fonts

我正在尝试通过以下方式在我的网站上显示Google字体Proxima Nova

@import url('https://fonts.googleapis.com/css?family=Proxima+Nova:400,600,700&subset=latin,latin-ext');

当我将字体粗细设置为700时,它在PC和Android chrome上均显示良好。
问题是,当我将字体粗细更改为600(半粗体)时,在PC上看起来应该如何,但在移动设备上则显示700(粗体)。我读到,当不存在字体粗细时,浏览器会自动选择最接近的字体。这是加载问题吗? Android是否未加载字体粗细600?


编辑:
我现在注意到,Android的大写字母 S 的两个边缘完全水平,而在PC上,无论以何种重量计,它们都成45度角。
现在,我认为这不再是加载问题。

也许Google字体在设备之间是不同的。

修改2:
这是屏幕截图。 screenshots
我是盲人还是完全不同?



我该怎么办?

1 个答案:

答案 0 :(得分:1)

这似乎是a bug,而Chrome浏览器用于Android对本地字体的字体处理。

字体导入会生成如下内容:

public void declareVariables() throws IOException {
    try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file))) {

            bufferedWriter.write("Y");
            bufferedWriter.newLine();
                        bufferedWriter.flush();


        } catch (IOException e) {
            e.printStackTrace();
                }
}


public void affectVariables() throws IOException {
    try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file))) {

            bufferedWriter.write("X");
            bufferedWriter.newLine();
            bufferedWriter.flush();



        } catch (IOException e) {
            e.printStackTrace();
        }
}

它不会使用url源,而是使用默认的Android字体作为后备(Roboto

不幸的是,解决方案是仅下载字体并自行托管并从该位置引用字体。参见answer on another question here