何时使用  ?

34

我在HTML中看到了&nbsp,除了创建一些空白之外,我无法完全理解它的作用。 我想知道它确切的作用以及何时应该使用它?

3个回答

40

 (它的末尾应该有一个分号)是一个实体,代表着一个不换行空格

在单词自动换行时,将它放置在两个不应该分开的单词之间。

关于何时使用这种语法的合适解释,请参考英文StackExchange上的良好解释


有时候,人们会滥用它来在网页内容之间创造水平空白(因为它不像多个普通空格一样会被折叠)。通常还是应该使用填充和边距而不是这种技巧。


9

 的一个原因是在文档中插入多个空格。

在HTML中,多个空格字符会被折叠成一个空格。这包括制表符和换行符。

如果您想要显示以下内容:

three   spaces.

您可以插入 3 个   实体,而不是使用空格,方法如下:

three   spaces.
编辑:值得一提的是 更多地是历史遗留物而不是别的什么。几乎这个问题答案中提到的每一个用途都有更好的替代方法来实现这个目标。然而, 仍然存在,以下是人们使用它的一些情况。
另请参阅:http://www.sightspecific.com/~mosh/www_faq/nbsp.html

14
可以,但不应该这样做。如果空格是有意义的,请使用<pre>标签或CSS中的 white-space 属性。如果您只想在内容之间添加空白,请使用 margin 或 padding。 - Quentin
1
我同意。在今天的网络中,确实没有什么很强的理由来支持使用 &nbsp;。然而它仍然存在,并且这是其中一个常见的用法。 - Jiaaro
6
&nbsp; 的概念起源于印刷排版,使用它在英语文本和其他语言中有非常充分的理由。例如,在破折号(... language text&nbsp;&mdash; and other...)之前通常应该使用它,其中换行应该仅发生在破折号之后,而不是之前。 - jpaugh

2
我不知道这是否回答了你的问题,当然,这个答案并不像其他人已经提供的那样高水平,但讨论线程或问答网站的美妙之处在于其中可能包含的多样性体验。因此,在这个问题上,我将与您分享我如何使用 nbsp;。(老实说,24小时前,nbsp; 还是我从未听说过的东西。)
以下是我如何使用nbsp;。我正在使用Markdown语言发布内容,并且有一个非常简单的两项列表。但我却无法使得列表前后的间距对称。所以,我进行了一次网络搜索,最终看到了这个帖子。 在使用nbsp;之前,第二个项目符号后面的段落会缩小项目符号和文本之间的间距,使其看起来好像该段落与第二个项目符号有关(实际上并非如此)。 我尝试了很多不同的方法,现在甚至都记不清楚了,但最终有效的方法是插入nbsp;
自那以后,我看到了各种各样的帖子,表明有些争议关于它的使用,但对于需要解决格式问题的非编程人员来说,nbsp;是一个非常快速和有用的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接