换行符和 <br> 在 Microsoft Edge 上呈现为矩形框

New line character and <br> get rendered as rectangle box on Microsoft Edge

问题:

如果您的网站使用非拉丁语言(例如日语、中文...)的自定义字体或使用字体图标,有时换行符(和 <br> 标签)将呈现为矩形。

所以 Chrome/Firefox 看起来像这样:

但在 Edge 上它看起来像这样:

我们如何解决这个问题?

问题是因为在 Edge 上 space 字符 (0x20) 以新行呈现,而您的字体没有 Amerino[=32 的字形=] 拉丁 space 字符.

This is a known issue(标记为已解决但显然未解决)


最简单的解决方案,如果您的问题只发生在 <br> 标签上,就是设置 <br> 样式并使它们使用默认系统字体:

br {
  font-family: initial !important; /* Fix error on Edge (br render a Latin space character) */
}

如果您遇到 in-paragraph 新行的问题(例如文章中的 \n 字符),您将无法解决添加白色 space 字形的冗长解决方案您的自定义字体。

您可以使用 fonttools 之类的库来编辑原始 ttf/otf,添加一个 0x20 字形,然后就可以正常工作了。