具有不同粗细但名称相同的Google本地字体

仔猪80

这是我的问题:

为了提高我在Google速度分析上的SPEED标记,我不得不从阻止渲染的Google字体切换到加载的本地Google字体。

到目前为止一切都很好,除了我有一个很大的问题。

在以这种方式加载字体之前:

<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Open+Sans+Condensed:300|Ubuntu+Condensed|Ubuntu:300,700" rel="stylesheet">

在我巨大的样式表中,我只是正常地称它们为例如:

body {
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
}

但是现在,由于必须下载它们以避免呈现阻塞的红色标记,因此我以这种方式调用它们:

@font-face {
    font-family: "Opens Sans";
    src: url("/fonts/OpenSans-Regular.ttf");
    font-style: normal;
    font-weight: 400;
}
@font-face {
    font-family: "Opens Sans";
    src: url("/fonts/OpenSans-Light.ttf");
    font-weight: 300;
}
@font-face {
    font-family: "Opens Sans";
    src: url("/fonts/OpenSans-Bold.ttf");
    font-weight: 600;
}
@font-face {
    font-family: "Opens Sans";
    src: url("/fonts/OpenSans-ExtraBold.ttf");
    font-weight: 700;
}
@font-face {
    font-family: "Opens Sans Condensed";
    src: url("/fonts/OpenSansCondensed-Light.ttf");
    font-weight: 300;
}
@font-face {
    font-family: "Ubuntu Condensed";
    src: url("/fonts/UbuntuCondensed-Regular.ttf");
    font-weight: 300;
}
@font-face {
    font-family: "Ubuntu";
    src: url("/fonts/Ubuntu-Regular.ttf");
    font-weight: 300;
}
@font-face {
    font-family: "Ubuntu";
    src: url("/fonts/Ubuntu-Bold.ttf");
    font-weight: 700;
}

在这里您可以看到我的问题。

我用相同的名称称呼不同的字体,但是它们具有不同的粗细。显然,我可以使用不同的名称来称呼它们,例如“ Ubuntu Bold”,但是随后我将不得不更改整个样式表,例如,我现在应该声明:

body {
      font-family: 'Open Sans Normal', sans-serif;
      // font-weight: 400; //
}
p {
      font-family: 'Open Sans Bold', sans-serif;
      // font-weight: 700; //
}

本质上,没有更多的字体粗细,只有不同的字体家族名称来说明粗细。

我的问题有什么解决办法吗?

毫米波

即使字体文件不同,也不需要font-family为每种字体设置不同的字体。您可以只设置一个font-family,然后在不同的@font-face属性中指定不同的变体

您应该@font-face使用相同的font-family名称定义每个名称,如下所示:

@font-face {
    font-family: 'Opens Sans';
    src: url("/fonts/OpenSans-Regular.ttf");
    font-style: normal;
    font-weight: 400;
}
@font-face {
    font-family: 'Opens Sans';
    src: url("/fonts/OpenSans-Italic.ttf");
    font-style: italic;
    font-weight: 400;
}
@font-face {
    font-family: 'Opens Sans';
    src: url("/fonts/OpenSans-Bold.ttf");
    font-style: normal;
    font-weight: 600;
}

请注意,每个不同的字体文件都有一个单独的@font-face属性,这些属性与特定的字体文件相对应,但是它们具有相同的font-family然后,您可以像这样在CSS中使用字体:

body {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
}
.bold {
    font-family: 'Open Sans', sans-serif;
    font-weight: 600;
}
.italic {
    font-family: 'Open Sans', sans-serif;
    font-style: italic;
}

在你的CSS类(其他属性font-weightfont-style等等)将确定@font-face被使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在CSS中使用相同Google字体的不同字体粗细

使用 Google 字体不同粗细的正确方法

字体粗细不同

如何比较不同粗细的OpenType字体是否相同?

如何找到具有全部字体粗细的网络字体?

不同的函数如何具有相同的名称?

在不同的页面有不同的字体粗细/类型

相同字体的重叠div具有不同的字母间距

以相同的名称调用不同的函数,具有相同的动作

某些字体粗细不会加载到具有不同 @font-face 负载的移动设备上

带下划线的文本-具有不同字体大小的交叉范围内的线条粗细

具有相同名称的通用Lisp本地阴影功能

从具有相同名称的库中包含具有相同名称的不同对象。

字体粗细900和字体粗细700以相同的方式呈现

具有相同系列名称的不同数据

声明具有相同名称的不同类的多个对象

具有相同名称,不同来源的功能

XSD具有相同名称但类型不同的多个元素

Eclipse:具有相同名称但位置不同的多个项目

具有相同类型但名称不同的多个元素?

删除具有相同值但名称不同的列

翻新呼叫具有相同的名称,但数据类型不同

Python:导入具有相同名称的不同模块

缓存具有相同名称的图像的不同目录

HTML电台在不同的div中具有相同的名称

使具有相同名称的新 ArrayList 表现不同

读取具有相同名称的不同xml节点

解析具有相同属性但名称不同的JSON文件

具有相同版本名称但版本代码不同的APK