HTML默认会将多个空格合并,只显示一个;
除了 外,Unicode 还定义了大量特性各异的,包含 HTML 实体形式的空格字符;
上图中的空格主要分为3类:
- 不换行空格
不换行空格只有 一种,最主要特性是不会被浏览器判断为可以在中间打断,这也是 被创造出来的主要用途。 如果一大段英文文字中的空格都使用 ,那么浏览器就无法正确识别出哪个字符才是单词的开始和结束, 因而无论如何使用 word-wrap 和 word-break 等控制单词断开或换行的 CSS 属性,最终都很难避免在单词中间断开单词, 这也往往不是我们想要的结果。因此如果段落中不同单词之间有大量的连续空格, 那么这些连续空格的第一个空格最好使用普通的半角空格,以保证单词之间仍有正常的分隔。
- 跟随字体大小产生相应空白的空格
这类空格包含       三个空格字符,这三个空格都会根据不同的字体大小产生相应的空白大小, 分别是 1/2 em,1em,1/6em(有时被设计成1/5em)宽; 由于中文是等宽字体,因此   和   所产生的空白大小与中文字大小具有明确的比例关系 (一个   等于半个中文字的宽度,而一个   则是一个中文字的宽度),因此这类空格很适合用于控制排版
- 零宽连字控制空格
即 ‌ 和 ‍ ,这两个空格字符并不会产生空白,仅能控制字符之间是否连字,
这两个字符也是“不打印字符”(或称作“控制字符”),即不会影响打印效果的字符,仅作字符特性控制。
而所谓的连字,是西方字体中常见的现象,表示两个单独的字母在相连时可以连接为新的字母的现象。
例如在德语中,"f" 与 "l" 之间连写会变成一个新字符,整个单词对应的语义也会发生改变或者产生不符合语法的情况。例如:
Auflage(编辑) 是一个德语复合词,由 "auf"(关于) 和 "lage"(位置)两个组成成分构成,
在德语语法中,复合词组成成分的边界不能产生连字,因此 "f" 和 "l" 之间不应该连字,
Auflage,Auf‌lage,Auf‍lage;
并不是所有的浏览器都对 ‌ 和 ‍ 敏感;
Auflage,Auflage,Auflage;(好像看不出效果)