它们都表示空间,但有区别吗?


当前回答

HTML解析器不将第一个空格视为空白,而将第二个空格视为空白。因此,“”并不一定会出现在特定的HTML标记中,而不可分割的空间总是会出现。

其他回答

除了这里的其他答案外,非间断空格不会像常规空格那样被“折叠”。例如:

<!——都是——> < p > Word1 Word2 < / p > <!——和——> < / p > < p > Word1 Word2 <!——将在任何浏览器上呈现相同的效果——> <!—下图在渲染时保留空格。--> < p > Word1&nbsp;,,,,, Word2 < / p >

一个是非间断空间,另一个是规则空间。非换行空格意味着该行不应该在该点被换行,就像它不会在单词中间被换行一样。

此外,正如Svend在他的评论中指出的那样,非间断空间并不是折叠的。

多个普通空格字符(空格、制表符和换行符)被视为单个空格字符:

对于除PRE之外的所有HTML元素,空格序列分隔“单词”(我们在这里使用术语“单词”来表示“非空格字符序列”)。当格式化文本时,用户代理应该识别这些单词,并根据特定的书面语言(脚本)和目标媒体的约定来布局它们。

So

foo    bar

显示为

foo bar

但是始终显示无间断空间。所以

foo&‍nbsp;&‍nbsp;&‍nbsp;bar

显示为

foo   bar

你可以在这里看到一个工作示例:

http://codepen.io/anon/pen/GJzBxo

and

http://codepen.io/anon/pen/LVqBQo

相同的div,相同的文本,不同的空格

<div style="width: 500px; background: red"> [loooong text with spaces]</div>

vs

<div style="width: 500px; background: red"> [loooong text with &nbsp;]</div>

HTML解析器不将第一个空格视为空白,而将第二个空格视为空白。因此,“”并不一定会出现在特定的HTML标记中,而不可分割的空间总是会出现。