【问题标题】:Custom Symbol Font not displayed in IEIE 中不显示自定义符号字体
【发布时间】:2023-03-24 06:25:01
【问题描述】:

以下设置

HTML

<!DOCTYPE html
SYSTEM "about:legacy-compat">
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="UTF-8">
    <title>SymbolTest</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="HandheldFriendly" content="true">
    <meta http-equiv="cleartype" content="on">
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body>
        <span class="greek">μ ω Ω ≥ ⊗ ↔  ± √ ≠ ♦ ♥ ♠ ⇐ ⇒ ⊥ ♦ ⊆ ∅</span>
    </body>
</html>

CSS

@font-face {
  font-family: Symbol;
  src: url("../fonts/Symbol/symbol.eot");
  src: url("../fonts/Symbol/symbol.eot?#iefix") format("embedded-opentype"), url("../fonts/Symbol/symbol.woff2") format("woff2"), url("../fonts/Symbol/symbol.woff") format("woff"), url("../fonts/Symbol/symbol.ttf") format("truetype"), url("../fonts/Symbol/symbol#symbolregularregular") format("svg");
  font-weight: normal;
  font-style: normal;
}
span.greek {
  font-family: Symbol;
}

与其他浏览器相比,在 Internet Explorer 中产生非常奇怪的结果;

当地的克罗姆

Chrome、服务器

FF,本地

FF,服务器

IE10,本地

IE10、服务器

IE11,本地

询问我是否要允许 ActiveX 组件 - 请注意,在后台,使用的字体是默认的 windows Symbol 字体...

点击“接受”后变为

这里发生了什么?我使用 FontSquirrel 创建了字体并使用了“bulletproof@font-face 语法,但它仍然没有按预期工作......?

【问题讨论】:

  • 我质疑您的文档类型选择。自从我处理这种类型以来已经太久了,我无法评论它,但我认为在这里不合适,我不希望 IE 能够正确处理它。
  • 好的,我会尝试其他一些文档类型。谢谢提示
  • 顺便说一句,请不要这样做maximum-scale=1.0, user-scalable=no"...我们并不是所有人都拥有完美的视力,我们中的一些人需要扩大规模。整个用户体验都很差。
  • 你可以检查字符集;如果某些浏览器未设置为使用其他字符集而不是页面中给出的字符集。
  • 我刚刚测试过,结果证明希腊字符本身在 IE 中可以正常工作。但是,如果我指定 font-family:'Symbol',我会得到与您相同的错误结果。所以我的结论是,IE 和 Symbol 不能很好地协同工作。 Fiddle。寻找另一种字体。

标签: html css internet-explorer font-face


【解决方案1】:

经过进一步调查,问题似乎已解决。正如 Mr Lister 所指出的,IE 本身显然不喜欢粘贴 UTF8 符号并将它们包装在 Symbol 字体中。

我与一位设计师同事一起检查了 Symbol 字体,似乎 IE 尝试实际使用键入的字符(例如 U+221ASQUARE ROOT)并将其映射到使用的字体 - Symbol

Symbol 显然没有适合代码点 8730 处的字符 - 因为 Symbol 仅支持 255 个字符。

这意味着,IE 将改为显示?

这里有趣的一点是,其他浏览器回退到默认字体并使用字符的 UTF8 值并正确显示它。

我们现在使用的解决方案是不使用任何字体,因为整个发布过程无论如何都是UTF8,所以没有必要在任何地方实际使用Symbol字体。我们只需照原样复制所有字符,就可以了。

【讨论】:

    猜你喜欢
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2013-02-09
    • 1970-01-01
    • 2017-12-01
    • 2020-12-21
    相关资源
    最近更新 更多