gpt4 book ai didi

css - 浏览器有时会使用错误的字体来渲染图标,导致文本出现乱码

转载 作者:行者123 更新时间:2023-12-04 17:35:29 24 4
gpt4 key购买 nike

我遇到了一个间歇性问题,Chrome 无法呈现正确的字体来显示图标。

我正在使用 icomoon.io 创建一组自定义图标作为字体,并且我正在使用以下 css(由 icomoon 自动生成)来显示这些自定义图标。

@font-face {
font-family: 'eIconFont';
src: url('fonts/eIconFontV3.eot?kmqo7q');
src: url('fonts/eIconFontV3.eot?kmqo7q#iefix') format('embedded-opentype'), url('fonts/eIconFontV3.woff2?kmqo7q') format('woff2'), url('fonts/eIconFontV3.ttf?kmqo7q') format('truetype'), url('fonts/eIconFontV3.woff?kmqo7q') format('woff'), url('fonts/eIconFontV3.svg?kmqo7q#eIconFontV3') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="eIcon-"], [class*=" eIcon-"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'eIconFont' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Enable Ligatures ================ */
letter-spacing: 0;
-webkit-font-feature-settings: "liga";
-moz-font-feature-settings: "liga=1";
-moz-font-feature-settings: "liga";
-ms-font-feature-settings: "liga" 1;
font-feature-settings: "liga";
-webkit-font-variant-ligatures: discretionary-ligatures;
font-variant-ligatures: discretionary-ligatures;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.eIcon-support:before {
content: "\e93b";
}
.eIcon-collapse:before {
content: "\e935";
}
.eIcon-expand:before {
content: "\e936";
}

html 看起来像这样:
<span class="eIcon-support" title="Support">
::before
</span>

结果如下所示:

enter image description here

查看 Chrome 开发工具,我可以看到字体文件本身从我们的 CDN 加载得很好,但我注意到在 Elements > Computed > Rendered Fonts 下,它显示 Times New Roman , 当值通常是 eIconFontV3 .奇怪的是浏览器试图使用 Times New Roman,当主体上设置的字体系列是 'Gotham Light', Arial, sans-serif .

这个错误很少发生,而且很难重现。

最佳答案

我也遇到了这个问题。如果您使用 sass并导致问题,也许下面的细节会帮助你。
我使用 sass 将 SCSS 文件编译为 CSS 文件,我发现 sass 将转义字符串(例如 \E91E ,十六进制 5C45393145 )转换为真正的 utf-8 值( ,十六进制 EEA49E ),但是node-sass不这样做。并且在使用 Chrome 时,转换有时会导致文本出现乱码。 Here有关于这个问题的更多细节。
我的临时解决方案是使用 node-sass 而不是 sass 来编译 SCSS 文件。

关于css - 浏览器有时会使用错误的字体来渲染图标,导致文本出现乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56800083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com