【问题标题】:Why the HTML entity doesn't work on the Windows Chrome?为什么 HTML 实体在 Windows Chrome 上不起作用?
【发布时间】:2014-04-17 17:30:12
【问题描述】:

HTML 实体不适用于 chrome 和 IE(在 windows 上)。

我在我的页面中输入了以下代码,它在 mac chrome 或 firefox 或 safari 上运行良好,但在 windows 上却不行。

<span class="font-family:Arial;">&lang; &rang; 〉 〈 </span>

【问题讨论】:

  • 什么不起作用?有什么问题?你看到了什么?不看? 〉 〈 是什么?
  • 是的,我看到了空白空间。我没有看到箭头。
  • &amp;lang ; 应该是 &amp;lang;; 之前没有空格。
  • :) 我确实有它喜欢 〈
  • 不确定是否是问题所在,但font-family:Arial; 不是有效的类名。我相信你想要style 而不是class

标签: html html-entities


【解决方案1】:

这主要是一个字体问题,尽管涉及的 HTML 规范有一个令人讨厌的静默变化。

现代浏览器将&amp;lang;&amp;rang; 解释为U+27E8 数学左角括号“⟨”和U+27E9 数学右角括号“⟩”,非正式地称为“bra”和“ket”。这种解释在 HTML5 的 named character references 部分中正式发布。

这些字符足以在许多数学符号中使用,并且 ISO 80000-2 标准明确指定使用它们,例如对于某些标量产品符号。但是support 对他们的字体是相当有限的。在旧的 Windows 系统中,没有字体包含它们。在较新的 Windows 系统中,从 Windows Vista 开始,Cambria Math 应该可用。您可能一直在旧 Windows 版本上进行测试,但 Chrome 也可能无法找到正确的字体。为了帮助它,请使用建议该字体的 CSS 规则,例如带属性

style="font-family: Cambria Math"

您可能会考虑使用已知包含字符的字体将一些其他字体添加到列表中。见我的Guide to using special characters in HTML

令人讨厌的变化是,在 HTML 4.01 中,entities 部分中,&amp;lang;&amp;rang; 被定义为引用 U+2329 左角括号“〈”和 U+232A 右角括号 ”>”。它们在逻辑上不太令人满意(并且被 Unicode 标准弃用),但它们具有更广泛的字体支持。

所以除了声明包含你使用的字符的字体之外,你还需要决定你使用哪对这些字符或者你是否使用其他的;这是一个复杂的问题。如果您使用它们,最好按原样使用它们(在 UTF-8 编码的 HTML 文档中)或使用数字字符引用,例如 &amp;#x27e8;。原因是不应期望&amp;lang;&amp;rang; 能够始终如一地工作;它们可能在所有现代浏览器中都以 HTML5 方式工作,但是当您可以明确指出您想要的字符时,几乎没有任何理由冒险。

【讨论】:

    【解决方案2】:

    该特定字符只是一个 unicode 代码点,它是一个任意数字。有很多没有“官方”符号的 unicode 代码点。即使它们确实有符号,也不一定是您的字体具有该代码点的符号。如果你选择不同的字体,你可能会得到不同的符号。

    我查看了页面的 CSS,它显示了这个字符以 Arial 显示(加上一堆其他无关紧要的字体)。 Windows 带有 Arial,因此它应该始终首先选择该字体。看起来 Arial 没有该 unicode 代码点的符号。每当您没有代码点的字形时,它都会以某种形式的框显示没有字形

    【讨论】:

    • 谢谢,你知道支持哪种字体吗?
    • 相关的 Unicode 码位具有分配给它的字符,而不是任意数字。答案严重混淆了字符概念和字体问题。
    【解决方案3】:

    这取决于实体,以及您的阅读器使用的系统上的字体。问题是这些字符不在 MathJax 网络字体中,因此 MathJax 必须依靠系统字体才能找到它们。有些浏览器在这方面比其他浏览器更好。您的配置控制了 MathJax 列出的浏览器要查看的字体,因此您可能需要对其进行修改以包含您知道可以找到您的实体的字体(并且您可能需要考虑这样一个事实,即您可能会有人阅读您的网站在 Windows、Mac 和 Linux 以及移动设备上,所以这样的决定并不总是那么容易)。

    请注意,当您安装 STIX 字体时,它会为您工作。这是因为 STIXGeneral 位于 MathJax 用于未知字符的默认字体列表中。您想将其他人添加到该列表中(它存储在配置的 HTML-CSS 和 SVG 部分的 undefinedFamily 属性中)。但是请注意,一旦遇到系统上安装的字体,IE 将停止检查字体,即使它不包含所需的字符,列表中的后续字体也会,所以你必须小心你的顺序使用。

    【讨论】:

    • 最好留下评论,而不是答案
    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    相关资源
    最近更新 更多