1

无法在 chrome、IE8 的选择元素中使用卢比字体

我使用 WebRupee 来显示印度卢比货币。如果字体在标签内,则字体显示正常,<p>但如果我将其放在选择选项元素中,则卢比仅在 Firefox 中正确显示,但在 chrome 和 IE8 中不正确显示(仅显示 R)。

<select >
   <option>$</option>
   <option>£</option>
   <option>€&lt;/option>
   <option style="font-family:WebRupee;">R</option>
</select>​

演示 http://jsfiddle.net/WEJbc/3/

4

1 回答 1

1

印度卢比标志 U+20B9,这显然是关于,还没有准备好在互联网上的黄金时段。最近添加到 Unicode 的 6.0 版中,预计在未来十年左右的时间里,它将以几种常用字体提供。然后,您可以在 UTF-8 编码的文档中使用它,或者作为字符引用使用它&#x20b9;

同时,使用货币名称、货币缩写、货币代码或现有的特殊符号,如 RUPEE SIGN U+20A8 (₨)。在货币的下拉菜单中,最好使用本地化名称(例如“美元”);例如,符号“$”用于表示世界上的几十种货币。

使用<option style="font-family:WebRupee;">R</option>是一种完全错误的方法,因为它试图通过使用特技字体将字符 (R) 的含义更改为其他含义。参见例如http://www.alanflavell.org.uk/charset/fontface-harmful.htmlhttp://alis.isoc.org/web_ml/html/fontface.en.html

从技术上讲,option即使在某些情况下它似乎有效的情况下,这个技巧也会失败。原因是浏览器可能会option以固定字体呈现元素,不允许内部进行任何字体更改。

可以通过设置将诡计扩展到option元素select { font-family: WebRupee; },因为 IE 允许您更改整个下拉菜单的字体,而不是单个选项。但除了字体欺骗的所有问题之外,这将失败,因为 WebRupee 字体的设计使其缺少美元符号 ($),因此该选项将显示为空。

于 2012-06-12T08:57:48.253 回答