IE8 支持 HTML 自定义字符实体代码 “▶”(阻止右箭头)

IE8 support for HTML custom character entity code "▶" (block right arrow)

提问人:Patrick Moore 提问时间:6/15/2013 更新时间:6/15/2013 访问量:3429

问:

我正在使用 HTML 字符代码来阻止按钮中的右箭头。

代码非常简单:

<a href="#" class="button aqua">Details &#x25B6;</a>

块箭头如下所示: ▶

字体是Arial:font: 11pt Arial, Helvetica, sans-serif;

我的编码是 UTF-8:我正在使用 XHTML 1.0 过渡文档类型。<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

在 IE 8 中,我只看到一个小边框,表示未找到字符。箭头不见了。知道如何使IE8识别这一点,或选择合适的字体/字符集吗?

作为替代方案,我打算做的是使用 jQuery 将字符替换为(直角引号:»,IE8 支持)。但是,我使用的是 v1.9,它取消了 .有什么方法可以检测正在呈现的字体/字符集吗?&rqauo;$.browser$.support.x

提前感谢您的建议。

jquery html 互联网浏览器 8 xhtml

评论


答:

1赞 Patrick Moore 6/15/2013 #1

哇,简直不敢相信事情竟然这么简单。仍然欢迎其他替代方案,但这似乎适用于 IE8。

将首选字体设置为 Arial 的 Unicode 版本:Arial Unicode MS

font: 11pt "Arial Unicode MS", Arial, Helvetica, sans-serif;

评论

0赞 Mr Lister 6/15/2013
是的,但并非所有计算机都会安装 Arial Unicode MS(它不是公共领域的字体),然后浏览器将回退到 Arial,这将不起作用。使用字符映射表找出哪些字体包含所需的字符。
0赞 Jukka K. Korpela 6/15/2013
@MrLister,字符映射表仅告知您自己系统中的哪些字体包含所需的字符。
0赞 Mr Lister 6/15/2013
是的,但我的理论是,如果字符在你自己的系统中以特定字体存在,那么它在其他系统上以相同字体出现的可能性更大。
0赞 Patrick Moore 6/15/2013
这就是问题所在,在我的系统上的“Unicode”集中,字符在“Arial”的字符映射中可用。但是在IE8上,在同一系统上,它不可用。
7赞 Jukka K. Korpela 6/15/2013 #2

通常,为了最大限度地提高显示特殊字符的几率,您应该声明一个已知包含该字符的字体列表,并包含不同系统中可用的字体。请参阅在 HTML 中使用特殊字符的指南font-family

对于字符 “▶” U+25B6 BLACK RIGHT-POINTING TRIANGLE,Fileformat.info 处的字体支持页面提到了 Arial Unicode MS 和 Lucida Sans Unicode,以及一些通常不安装在 Windows 系统上的字体。Arial Unicode MS随Microsoft Office和其他一些软件一起提供,而Lucida Sans Unicode自Windows XP以来随Windows一起提供。因此,您应该使用

<style>
.triangle { font-family: Lucida Sans Unicode, Arial Unicode MS, sans-serif; }
</style>
[...]
<a href="#" class="button aqua">Details <span class=triangle>&#x25B6;</span></a>

这应该可以解决IE的问题。然而,由于某种奇怪的原因,当我在(虚拟)Windows XP 上的 IE 6 中测试它时,它失败了:字符仍然显示为一个框。我说不出为什么,但 IE 6 中的字符渲染通常非常有问题。如果确实想最大限度地提高显示符号的几率,请使用图像。

评论

1赞 Jon Surrell 3/6/2014
这帮助了我。我试图通过 css 伪生成并在 ie8 中获取该框。我添加了你的规则:这解决了它。我以前曾单独尝试过“Arial Unicode MS”,但没有用。.el:before {content: "\25b6";}font-family: "Lucida Sans Unicode", "Arial Unicode MS", sans-serif;