【问题标题】:Local Font Declaration Not Loading Italic/Bold本地字体声明未加载斜体/粗体
【发布时间】:2020-10-25 07:14:11
【问题描述】:

我知道这里有很多关于使用字体加载字体的问题,但是我已经检查了所有(或至少很多),但似乎没有任何效果......

@font-face {  
    font-family: 'Open Sans';
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+000-5FF;
    src: local('Open Sans'),
    url('../../fonts/open-sans/open-sans-regular.woff2') format('woff2'),
    url('../../fonts/open-sans/open-sans-regular.woff') format('woff');
}

@font-face {  
    font-family: 'Open Sans';
    font-weight: 400;
    font-style: italic;
    font-display: swap;
    unicode-range: U+000-5FF;
    src: local('Open Sans'),
    url('../../fonts/open-sans/open-sans-italic.woff2') format('woff2'),
    url('../../fonts/open-sans/open-sans-italic.woff') format('woff');
}

@font-face {  
    font-family: 'Open Sans';
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+000-5FF;
    src: local('Open Sans'),
    url('../../fonts/open-sans/open-sans-bold.woff2') format('woff2'),
    url('../../fonts/open-sans/open-sans-bold.woff') format('woff');
}

@font-face {  
    font-family: 'Open Sans';
    font-weight: 700;
    font-style: italic;
    font-display: swap;
    unicode-range: U+000-5FF;
    src: local('Open Sans'),
    url('../../fonts/open-sans/open-sans-bold-italic.woff2') format('woff2'),
    url('../../fonts/open-sans/open-sans-bold-italic.woff') format('woff');
}
//End Open Sans

然后我使用以下命令加载脚本:

wp_enqueue_style( 'font-open-sans', get_template_directory_uri().'/assets/scss/css/open-sans.css', false, NULL, 'all');

控制台没有抛出 404,并且在页面源中我可以看到 css 文件已正确加载。但是,当尝试使用 font-weight: bold; font-weight: 700; font-style: italic; 时,没有任何反应,它仍然是正常的。

文件结构:

- theme
    > assets
        > fonts
            > open-sans
                > open-sans-italic.woff
                > open-sans-italic.woff2
        > scss
            > css
                > open-sans.css

更新

检查检查器的样式选项卡后,我可以看到该行被调用,但是,它有一行穿过它(但在默认浏览器font: inherit 代码之前不会在任何地方覆盖。

还要注意它在 Safari 中正确加粗,但在 Chrome 中不加粗。即使两者都显示它被划掉了。

包含这两种文件类型意味着所有浏览器都可以提供一种字体,只要版本早于 2014 年之类的版本。我的 chrome 是 80.0.3987.132,所以我知道这不是版本问题。

https://caniuse.com/?search=woff https://caniuse.com/?search=woff2

更新

该问题已通过删除 local('Open Sans') 得到修复

我检查了我的 mac,发现我安装了很多 TTF 文件,但名称不匹配。我不会标记答案,因为我不明白为什么这对于 Chrome 来说仍然不是粗体,但对于 Safari 来说是粗体。请了解这方面的人随时详细回答以领取赏金。

更新

已提供答案,意味着本地声明可以保留!

【问题讨论】:

    标签: css wordpress font-face webfonts


    【解决方案1】:

    您面临的问题是因为您告诉它查找相同的本地字体文件,而不是为每个实例定义粗细/字体样式。

    尝试在src: local 中添加字体粗细/样式,例如:

    src: local('Open Sans 400'), //Regular
    src: local('Open Sans 400i'), //Regular Italic
    src: local('Open Sans 700'), //Bold
    src: local('Open Sans 700i'), //Bold Italic
    

    或者你也可以使用:

    src: local('Open Sans'),
    src: local('Open Sans Italic'),
    src: local('Open Sans Bold'),
    src: local('Open Sans Bold Italic'),
    

    【讨论】:

    • 非常感谢您,我已要求进行编辑,以使您的答案更详细,如果人们遇到同样的情况,更适合更广泛的情况。我可以在 24 小时后奖励赏金。
    猜你喜欢
    • 2011-07-18
    • 2019-07-20
    • 2012-03-03
    • 2012-12-10
    • 1970-01-01
    • 2021-06-30
    • 2020-08-10
    • 2014-07-07
    • 2017-01-20
    相关资源
    最近更新 更多