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

标签 css google-chrome webfonts woff

我在使用“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/

相关文章:

html - ul 大小不在所有子元素周围

css - 按钮周围的边框显示了一点背景色

css - css选择器的级别是什么? 3级和4级有什么区别吗?

google-chrome - GWT Super Dev Mode,如何启用 Source Maps

jquery - 谷歌浏览器和 jquery 用户界面 : draggable object is moving away from mouse cursor

javascript - 某些网络图标不会出现在浏览器中

javascript - 滚动到屏幕顶部后,如何使 div 贴在屏幕顶部?

javascript - chrome浏览器如何调用父窗口函数?

php - 我怎样才能在网站上使用本地字体

google-chrome - 如果也在 Windows 7+10 上本地安装,Google 网络字体 "Open Sans"不会以正确的粗细显示