4

<kbd>unicode 中的字符是否类似于HTML中的标签所形成的东西?我想用它作为游戏的一部分来表示用户可以按键来执行某个动作,例如:

按下R可重置,或S打开设置菜单。

有没有字符?我不需要任何花哨的⇧ Shift东西Tab ⇆</kbd>, single-letter keys are plenty. I am looking for something that would work somewhat like the Enclosed Alphanumerics subrange.

如果有字符,我在哪里可以找到描述它们的页面?我尝试的所有谷歌搜索都只出现了“unicode字符键盘快捷键”的东西。

如果没有字符,我如何在处理 2.0.1 中显示类似的内容作为(或至少符合)文本字符串的一部分?

4

1 回答 1

4

(所指的渲染不是 的默认渲染,它只kbd是以系统默认的等宽字体显示内容。但例如在 StackOverflow 页面中,使用样式表进行格式化kbd,使其看起来像键帽。)

有点令人惊讶的是,有一种 Unicode 方法可以创建看起来像键帽中的字符的东西:输入字符,然后立即 COMBINING ENCLOSING KEYCAP U+20E3

对该字符的字体支持非常有限,但包含一些免费字体。不幸的是,它们都不是无衬线字体,要在里面显示的字符通常应该以这种字体出现——毕竟,真正的键帽包含非常简单的字符形状,没有衬线。并且一般来说,一个字符和一个包围标记应该取自同一个字体;否则它们可能不兼容。但是,似乎从GNU Freefont中的无衬线字体 (FreeSans) 中获取普通字符并从同一来源的衬线字体 (FreeSerif) 中获取组合标记创建了一个合理的表示:

在此处输入图像描述

恐怕它在文本中不起作用,但我会尝试:A⃣。

如前所述,这是否有效取决于使用合适的字体,还取决于渲染软件。程序在显示组合标记方面相当糟糕,但已经有了一些改进。我在 Word 2007 中对此进行了测试,它可以正常工作,并且在 Web 浏览器(Chrome、Firefox、IE)上也使用如下代码进行了测试,结果良好:

<style>
.cap { font-family: FreeSerif; }
.cap span { font-family: FreeSans; }
</style>
<span class="cap"><span>A</span>&#x20e3;</span>

使用提到的字体时,它并不完美。帽子里的人物不是很集中。此外,如果我尝试使用这种技术,例如字符 Å(在普通北欧键盘上出现),A 上方的圆环会伸出盖子。您可以通过将大写字母的字体大小设置为组合标记字体大小的 85% 来调整此设置,但字母的水平位置会更加偏离。

总而言之,可以在字符级别做这样的事情,但是如果您可以使用其他方法,例如为字符使用边框或背景图像,您可能可以获得更好的渲染效果。

于 2013-07-29T20:33:38.487 回答