" "之间有什么区别 和""?

omg*_*omg 132 html

它们都意味着空间,但有什么区别吗?

Bri*_*sen 178

一个是不间断的空间,另一个是常规空间.不间断的空间意味着该行不应该被包裹,就像它不会被包裹在单词的中间一样.

此外,正如Svend在评论中指出的那样,不间断的空间不会崩溃.

  •   也是非崩溃的,这可能是他们使用中最重要的方面(至少,我倾向于使用它们,填充内容,快速简便) (41认同)
  • Protip:请不要连续使用15%的东西.当我看到人们这样做时,让我疯狂.使用CSS填充或边距. (39认同)
  • 当我看到Microsoft Word也这样做时,它让我感到疯狂...... (4认同)
  • 还有其他尺寸的间距实体,如`&hairsp      ` 你可以在 [https://jsfiddle.net/medmunds/4crt3c9j/] 看到并进行实验 (2认同)

Guf*_*ffa 65

实体 生成一个不间断的空间,当您不希望在该位置自动换行时使用该空间.常规空间具有字符代码32,而非中断空间具有字符代码160.

例如,当您将数字显示为千位分隔符:1 234 567时,则使用不间断空格,以便不能在单独的行上拆分该数字.如果您显示货币并且金额和货币之间有空格:42 SEK,那么您使用不间断的空间,这样您就不会在一行上获得金额而在下一行中获得货币.

  • nbsp使用的好例子。我一直在寻找自己,但没想到他们。 (2认同)

Gra*_*row 45

除了这里的其他答案之外,非破坏空间不会像常规空间那样"折叠".例如,两者

<p>Word1          Word2</p>
Run Code Online (Sandbox Code Playgroud)

<p>Word1 Word2</p>
Run Code Online (Sandbox Code Playgroud)

将在任何浏览器上呈现相同的内容

<p>Word1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word2</p>
Run Code Online (Sandbox Code Playgroud)

将在渲染时保留空格.

  • 我现在明白了.顺便说一句,这是一个已知的错误:http://meta.stackexchange.com/questions/3314 (2认同)

Kel*_*net 28

答案不像一个例子..

示例#1:

<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
    Hello&nbsp;There
</div>  
Run Code Online (Sandbox Code Playgroud)

示例#2:

<div style="width:45px; height:45px; border: solid thin red; overflow: visible">
    Hello There
</div>
Run Code Online (Sandbox Code Playgroud)

并链接到小提琴.

  • 恕我直言,无需浏览另一个答案。9年,仍然有效。 (4认同)

alb*_*ini 9

你可以在这里看到一个有效的例子:

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

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

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

<div style="width: 500px; background: red"> [loooong text with spaces]</div>
Run Code Online (Sandbox Code Playgroud)

VS

<div style="width: 500px; background: red"> [loooong text with &nbsp;]</div>
Run Code Online (Sandbox Code Playgroud)

  • 所以问题和答案应该是独立的。*也*允许使用指向codepen的外部链接,***如果***完整的答案*也*直接包含在帖子中。为了遵守 SO 政策,“编辑”您的帖子以将代码的结果输出包含在您的答案中,或者添加 SO 自己的嵌入式 codepen 版本,以便访问者可以运行代码并查看结果而无需离开外部页。自包含策略的原因是,如果链接无法访问,则答案将变得无用。此外,*要求*用户离开,只是为了得到答案,这是糟糕的用户体验。 (2认同)

Gum*_*mbo 6

多个普通空白字符(空格,制表符和换行符)被视为一个空白字符:

对于除了PRE白色空间序列之外的所有HTML元素,单独的"单词"(我们在这里使用术语"单词"表示"非空白字符的序列").格式化文本时,用户代理应识别这些单词并根据特定书面语言(脚本)和目标介质的约定进行排列.

所以

foo    bar
Run Code Online (Sandbox Code Playgroud)

显示为

foo bar
Run Code Online (Sandbox Code Playgroud)

但总会显示不间断的空间.所以

foo&?nbsp;&?nbsp;&?nbsp;bar
Run Code Online (Sandbox Code Playgroud)

显示为

foo   bar
Run Code Online (Sandbox Code Playgroud)


Pet*_*ete 5

如前所述,您将不会收到有"无休息空间"的换行符.

另外要小心,只包含""的元素可能会显示不正确,其中  将工作.至少在ie 6中(据我记得,IE7有相同的问题),如果你有一个空表元素,它将不会对元素应用样式,例如边框,如果没有内容,或者只有白色空间.因此,以下内容不会使用边框呈现:

<td></td>
<td> <td>
Run Code Online (Sandbox Code Playgroud)

边框将显示在此示例中:

<td>& nbsp;</td>
Run Code Online (Sandbox Code Playgroud)

嗯 - 要放入一个虚拟空间,让它在这里正确渲染