HTML 中         等 6 种空白空格的区别

[TOCM]

一、前言


HTML 提供了 6 种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器。其它几种空格(      ‌ ‍)在不同浏览器中宽度各异。

二、HTML 的 6 种空格实体


1、 

它叫不换行空格,全称 No-Break Space,它是最常见和使用最多的空格,大多数的人可能只接触了 ,它是按下空格键(spacebar)产生的空格。在 HTML 中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用 HTML 空格实体( )表示才可累加,该空格占据宽度受字体影响明显而强烈。

2、 

它叫“半角空格”,全称是 En Space,en 是字体排印学的计量单位,为 em 宽度的一半。根据定义,它等同于字体宽度的一半(如 16px 字体中就是 8px)。名义上是小写字母 n 的宽度。此空格传承空格家族一贯的特性:透明的,此空格有个相当稳健的特性,就是其占据的宽度正好是 1/2 个中文宽度,而且基本上不受字体影响。

3、 

它叫“全角空格”,全称是 Em Space,em 是字体排印学的计量单位,相当于当前指定的点数。例如,1em 在 16px 的字体中就是 16px。此空格也传承空格家族一贯的特性:透明的,此空格也有个相当稳健的特性,就是其占据的宽度正好是 1 个中文宽度,而且基本上不受字体影响。

4、 

它叫“窄空格”,全称是 Thin Space。我们不妨称之为“瘦弱空格”,就是该空格长得比较瘦弱,身体单薄,占据的宽度比较小。它是 em 的六分之一宽。

5、‌

它叫“零宽不连字”,全称是 Zero Width Non Joiner,简称“ZWNJ”,是一个不打印字符,放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。Unicode 中的零宽不连字字符映射为“”(zero width non-joiner,U+200C),HTML 字符实体编号为‌

6、‍

它叫“零宽连字”,全称是 Zero Width Joiner,简称“ZWJ”,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。零宽连字符的 Unicode 码位是 U+200D,HTML 实体编号为‍

此外,浏览器还会把以下字符当作空白进行解析:空格( )、制表位(	)、换行(
)和回车(
)还有( )等等。

三、参考文献

博客园 - 七微月ok

(完)