gpt4 book ai didi

css - 小型大写字母不使用网络字体在 chrome 中呈现

转载 作者:太空宇宙 更新时间:2023-11-04 14:09:32 25 4
gpt4 key购买 nike

我在使用“font-variant: small-caps”将我的 Web 字体设置为小型大写字母时遇到问题。这是我的发现和经历,排除了可能的问题:

  1. 我最初的想法是 .woff 文件出于某种原因没有渲染小型大写字母。我已经排除了这种可能性,因为该字体在 Safari 和 Firefox 中呈现良好,据我所知它们使用 .woff 格式。
  2. 我的第二个想法是这是一个 webkit 问题,但由于 Safari 显示正常,我认为不是。
  3. 我没有使用 twitter bootstrap,所以没有 text-rendering: optimylegibility,我也尝试过将其重置为自动。
  4. 我尝试了 font-feature-settings: 'smcp' 包括浏览器前缀,它不呈现小型大写字母(在所有浏览器中只有第一个字母大写)

我是不是遗漏了什么?

编辑

经过进一步的研究,我找到了一个解决方法,就是在@font-face中添加font-variant:small-caps,如下所示:

@font-face {
font-family:'MYFONT';
src:url('../fonts/MYFONT.eot');
src:url('../fonts/MYFONT.eot?#iefix') format('embedded-opentype'),
url('../fonts/MYFONT.ttf') format('truetype'),
url('../fonts/MYFONT.woff') format('woff'),
url('../fonts/MYFONT.svg#myfont') format('svg');
font-variant:small-caps
}

事实证明,只有堆栈受此影响。在 Chrome 支持的每种字体格式中,像这样分配一个 @font-face 可以正常工作:

<style>
@font-face {
font-family:'MYFONTttf';
src:url('../fonts/MYFONT.ttf') format('truetype');
}
</style>

<div style="font-family:MYFONTttf; font-variant:small-caps">
works as expected, in small-caps
</div>

最佳答案

我认为关键是,奇怪的是,不包括 SVG 格式的字体。仅包括 WOFF 和 TTF 似乎可以正常显示。

我使用 Font Squirrel 生成了各种字体文件,所以我得到了 .woff.ttf.svg.eot 文件。我的字体相关 CSS 是:

@font-face {
字体系列:“foo”;
src: url(/fonts/foo.eot);
src: url(/fonts/foo?#iefix) 格式('eot'), url(/fonts/foo.woff) 格式('woff'), url(/fonts/foo.ttf) 格式('truetype') , url(/fonts/foo.svg) 格式('svg');
字体粗细:正常;
字体样式:正常;
}

Compass 生成自:

+font-face("foo", font-files("/fonts/foo.woff", "/fonts/foo.ttf", "/fonts/foo.svg"), "/fonts/foo.eot", 正常, 正常)

符合Compass's SASS font-face guidelines .

删除对 SVG 的引用似乎可以解决问题。我还尝试切换 TTF 和 SVG 的顺序(打破 Compass 对字体文件的“推荐顺序”),但这没有帮助。

快速浏览一下,Chrome 似乎在渲染 SVG 字体方面存在其他杂项问题。这不是一个真正优雅的解决方案,但在 Chrome 解决其 SVG 问题之前可能有必要。

关于css - 小型大写字母不使用网络字体在 chrome 中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20891903/

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