在学习HTML时,我认为``和 具有相同的宽度,但以下示例表明这并不成立。
<!DOCTYPE html> <html lang="en"> <meta charset="utf-8" /> </html> <body style="font-family: Charter"> Foo Foo Foo </body>
大多数字体的空格都是一样的,但Charter就不一样(很容易找到其他的例子)。为什么会这样?我该怎么解决这个问题?
deyfvvtc1#
来自the Unicode specification的第6章:不换行空格。U+00A0不换行空格(NBSP)是U+0020空格的不换行对应项。它具有相同的宽度,但换行行为不同。如果一个空格和一个不间断空格的宽度在一个给定的字体中是不同的,那么它就是该字体中的一个bug,除了更改字体之外,您没有什么可以做的。
kuarbcqp2#
您可以随时更改单个空格的字体大小
<!DOCTYPE html> <html lang="en"> <meta charset="utf-8" /> </html> <body style="font-family: Charter"> Foo Foo<span style='font-size:10px;'> </span>Foo </body>
xtfmy6hx3#
我在使用特定字体时偶然发现了这个问题,但不想更改它。我想出了这个解决方案:您需要插入2个压缩的不间断空格NNBSP(窄不间断空格- U+202 F),而不是一个不间断空格NBSP
3条答案
按热度按时间deyfvvtc1#
来自the Unicode specification的第6章:
不换行空格。U+00A0不换行空格(NBSP)是U+0020空格的不换行对应项。它具有相同的宽度,但换行行为不同。
如果一个空格和一个不间断空格的宽度在一个给定的字体中是不同的,那么它就是该字体中的一个bug,除了更改字体之外,您没有什么可以做的。
kuarbcqp2#
您可以随时更改单个空格的字体大小
xtfmy6hx3#
我在使用特定字体时偶然发现了这个问题,但不想更改它。我想出了这个解决方案:
您需要插入2个压缩的不间断空格NNBSP(窄不间断空格- U+202 F),而不是一个不间断空格NBSP