为什么html实体不能在win chrome上运行?

tv4*_*ree 7 html html-entities

HTML实体不支持chrome和IE(在Windows上).

我在我的页面中输入了以下代码,它在mac chrome或firefox或safari上工作正常,但在Windows上却没有.

<span class="font-family:Arial;">&lang; &rang; ? ? </span>
Run Code Online (Sandbox Code Playgroud)

Juk*_*ela 6

这主要是一个字体问题,尽管HTML规范中存在令人讨厌的静默更改.

现代浏览器解释&lang;&rang;指代U + 27E8数学左角支架"⟨"和U + 27E9数学右角支架"⟩",非正式地称为"胸罩"和"牙".这种解释在HTML5 的命名字符引用部分正式进行.

这些字符足以用于许多数学符号,ISO 80000-2标准明确规定它们例如用于某些标量产品符号.但是字体的支持相当有限.在旧的Windows系统中,没有字体包含它们.在较新的Windows系统中,从Windows Vista开始,Cambria Math应该可用.您可能已在旧版Windows上进行测试,但Chrome也可能找不到合适的字体.为了帮助它,使用建议字体的CSS规则,例如使用属性

style="font-family: Cambria Math"
Run Code Online (Sandbox Code Playgroud)

您可以考虑使用已知包含字符的字体向列表中添加一些其他字体.请参阅我在HTML中使用特殊字符的指南.

令人讨厌的变化是在HTML 4.01中,在实体部分中, &lang;并被&rang;定义为引用U + 2329 LEFT-POINTING ANGLE BRACKET"<"和U + 232A RIGHT-POINTING ANGLE BRACKET">".它们在逻辑上不太令人满意(并且被Unicode标准弃用),但它们具有更宽的字体支持.

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


小智 2

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

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