Safari iOS 5 中不显示自定义 webfont 字符

Posted

技术标签:

【中文标题】Safari iOS 5 中不显示自定义 webfont 字符【英文标题】:Custom webfont characters don't appear in Safari iOS 5 【发布时间】:2012-09-28 23:14:39 【问题描述】:

[修订]

我的自定义图标字体没有在 ios 5 上的 Mobile Safari 中呈现。我已经确认问题一定出在我的 CSS 上。

当使用 http://www.fontsquirrel.com 生成的相应 eot 和 woff 格式时,该字体在 iOS 6 和桌面版本的 Safari、Chrome、Firefox 和 IE9 上运行良好

@font-face

我目前正在使用以下简化的@font-face 声明 (SASS):

@font-face
  font-family: 'Boundless'
  src: asset-url('boundless.ttf', font) format('truetype')
  font-weight: normal
  font-style: normal

以下 html 有效(它在 iOS 5.1 上的 Mobile Safari 中呈现所需的图标字符:

<h1>&#xf0000;</h1>

但是,如果我尝试以 Font-Awesome 的方式渲染它,我会看到一个 &lt;?&gt; 字形:

SASS

i.bicon-biology:before
  font-family: "Boundless"
  content: "\f0000"

HTML

<h1><i class="bicon-biology"></i></h1>

Font-Awesome 图标在网站上呈现良好。

有谁知道是什么原因导致了这个问题?

我还应该补充一点,我尝试了这里提出的所有建议:@font-face not embedding on mobile Safari (iPhone/iPad),但没有一个奏效。这包括添加笑脸技巧,确保我的字体网址是绝对的,并尝试使用 svg 字体(无论如何,这对于 iOS 5 来说是不必要的)。

【问题讨论】:

只是好奇,为什么你使用的字符范围如此之大,而不是你可以在键盘上看到的东西? 有问题的范围被认为是 utf-8 的“私人使用区域”(PUA),所以它是为这类事情设计的。它给了我那种在语义上做正确事情的温暖而刺痛的感觉。一个积极的结果是屏幕阅读器不会尝试将图标读取为字符。 啊,这很有意义。几天来我一直在想这种做法。感谢您的回答。 【参考方案1】:

Mobile Safari 显然不喜欢我使用的 utf-8 地址 (/0f0000-/0f001e)。

我编辑了字体以将字符移动到 Font-Awesome 使用的相同位置 (/00f000...),并且很快,它起作用了!

我还检查了添加/删除 0 的左侧填充是否有所不同,并且无论哪种方式都可以。只是关于其他地址范围的一些东西。 :\

再次:这只有在伪元素内容中使用代码时会出现问题。正如你在上面看到的,&amp;#xf0000; (和&amp;#x0f0000;)直接在 HTML 中渲染得很好。

【讨论】:

以上是关于Safari iOS 5 中不显示自定义 webfont 字符的主要内容,如果未能解决你的问题,请参考以下文章

在 IOS 5 中不显示颜色和数据

自定义日期 .filter 仅在 iOS 中不显示日期 .split 方法方法

HTML:单引号在此网站上显示为空格,但仅在某些浏览器中显示(即在桌面上的 Chrome 中,但在 iOS 上的 Safari 中不显示)

CSS光标位置属性在Safari中不起作用

iOS Button 在自定义视图中不起作用

iOS 9.3.2 自定义 URL 方案未从 Safari 启动应用程序