如何使用CSS强制固定字符宽度,包括奥秘的Unicode字符?

5
我怀疑这是不可能的,但我只是想确认一下。
我想强制一个 <span> 中的一个字符具有特定的 widthheight1em
理想情况下,如果该字符不是固定宽度,则应将其拉伸到 1em。
这必须支持任何字符,包括罕见的 Unicode 字形,因此我不能仅将字体设置为 Courier。
最后,这应该仅使用 CSS 完成,并且简单轻巧。例如,包含一个像素图像的 div(仅用于显示此单个字符)的解决方案不可行。
我无法记住任何可以做到这一点的属性,并且尝试通过 Google 搜索只返回了大量关于“固定宽度布局”的内容,没有任何关于单个字符的信息。
如果没有简单的解决方案,但是有一个复杂的解决方案,我不会使用它,但我很想听听它。

1
这个问题类似于另一个堆栈溢出的问题:http://stackoverflow.com/questions/4258872/limiting-characters-to-a-specfic-width - Brian Clapper
1
@Brian,那个问题没有指定格式化策略 - 尽管它被标记为 [php] - 而这一个明确要求CSS。 - Pops
2
这就是为什么我没有投票将此问题关闭为重复的原因。它是一个相关问题,但不完全相同。 - Brian Clapper
@Brian,好的,说得对。我甚至不认为它们足够相似来评论,但这变得非常主观和无生产力。 - Pops
2个回答

5
您可以使用@font-face来包含一个具有良好Unicode支持的等宽字体。 DejaVu系列拥有出色的Unicode支持和单色变体,非常适合此用途。您可以使用FontSquirrel的@font-face生成器来创建所需的文件。

3

虽然我喜欢Yi Jiang的答案,但我认为你可能会更适合使用基于GNU Unifont的字体,这是根据此页面和维基百科列出的支持Unicode的字体列表的简短讨论得出的结论。值得注意的是,第一个页面指出DejaVu Sans Mono缺少一些字形,这在您的应用程序中可能相当常见。


DejaVu Sans Mono目前提供了文章中提到的大部分(也许全部)缺失字符。 - Marconius
嗯,现在我在工作中被阻止了,但我会尝试稍后查看,感谢您的提示。 - Pops

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接