css - 如何修复 Windows 上异常字符的等宽间距?

标签 css unicode fonts cross-browser monospace

我的屏幕上有一些带有等宽字体的 pre 输出。它在 Mac 上的 Chrome 和 Firefox 上都能正确显示。但是,在 Windows 上,它失去了等宽。

这是来自 my site 的示例:

▥▥▥▥▥▥▥▥▥▥
▥♖.......▥
▥........▥
▥........▥
▥........▥
▥........▥
▥........▥
▥........▥
▥.......☆▥
▥▥▥▥▥▥▥▥▥▥

如何修复它,使每个字符占用相同的空间,即使在 Windows 上也是如此?

下面是一些测试文本:

0123456789
..........
▥▥▥▥▥▥▥▥▥▥

更新: 这似乎是 Windows 如何显示某些字符的问题,例如 ▥。有办法解决这个问题吗?

最佳答案

查看 Chrome 中的计算样式选项卡,问题的原因是它从三种不同的字体获取字形:

Courier New -- 72 Glyphs
Lucida Sans Unicode -- 36 Glyphs
Arial Unicode MS -- 2 glyphs

这些面孔中的每一个都有不同的大小。

可能的解决方案

  • 用 css 边框替换边框字形
  • 用来自与棋子相同区域的字形替换“空”单元格,可能是 U+3000“表意空间”:
  • 使用类似 ul 甚至 flexbox 的东西来显示元素 - 具有能够以编程方式选择每个元素的优势!

祝你好运

关于css - 如何修复 Windows 上异常字符的等宽间距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23665982/

相关文章:

xml - Haskell 对 XML 中的 Unicode 的态度是什么?

javascript - 通过javascript混淆来混淆css文件

jquery - @媒体屏幕?不能向下移动框?

html - Font Awesome 图标之间的间距

string - 将 UTF-8 字符串存储在 UnicodeString 中

java - 将字节数组转换为可理解的字符串

css - SVG 元素的字体可以在 CSS 文件中声明吗?

python - 如何在 PIL.ImageFont 中使用我自己的位图字体?

html - CSS 像素/计算机类字体 - 例如 Courier New

html - chrome 移动版 VS chrome 桌面版 : different position of the same element