换行符和 <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
字形,然后就可以正常工作了。
问题:
如果您的网站使用非拉丁语言(例如日语、中文...)的自定义字体或使用字体图标,有时换行符(和 <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
字形,然后就可以正常工作了。