“ ”和“”有什么区别?

他们都是空间,但是有什么区别吗?

一个是非破坏性空间 ,另一个是经常性空间。 一个没有破坏的空间意味着该行不应该被包装在这一点,就像它不会被包裹在一个字的中间。

此外正如Svend在他的评论中所指出的那样,不破坏的空间并没有崩溃。

实体  产生一个不间断的空间,当你不想在这个位置自动换行时使用这个空间。 常规空间具有字符代码32,而非破坏空间具有字符代码160。

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

除了这里的其他答案之外,不间断的空间也不会像常规的空间那样“折叠”。 例如,两者

 <p>Word1 Word2</p> 

 <p>Word1 Word2</p> 

在任何浏览器上都会呈现相同的效果

 <p>Word1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word2</p> 

将呈现时保持空格。

不是一个例子的答案

示例#1:

 <div style="width:45px; height:45px; border: solid thin red; overflow: visible"> Hello&nbsp;There </div> 

示例#2:

 <div style="width:45px; height:45px; border: solid thin red; overflow: visible"> Hello There </div> 

并链接到小提琴 。

正如已经提到的那样,在没有“不间断空间”的情况下,您将不会收到换行符。

同样要警惕的是,只包含“”的元素可能显示不正确, 将工作。 至less在IE6中(据我记得,IE7有同样的问题),如果你有一个空的表格元素,它不会应用样式,例如边框,元素,如果没有内容,或只有白色空间。 所以以下内容不会被渲染为边框:

 <td></td> <td> <td> 

而在这个例子中边框会显示出来:

 <td>& nbsp;</td> 

嗯 – 把一个虚拟的空间,让它在这里正确渲染

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

对于除PRE以外的所有HTML元素,空白序列都将“单词”分开(我们在此使用术语“单词”表示“非空白字符序列”)。 在格式化文本时,用户代理应该根据特定的书面语言(脚本)和目标媒体的约定来标识这些词并将其排列出来。

所以

 foo bar 

显示为

 foo bar 

但总是显示不间断的空间。 所以

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

显示为

 foo bar 

有很多不同types的空间,比如空间薄弱,空间不大,空间不足…… Jon Tan 在他的博客中写下了最常见的空间。

第一个不被HTMLparsing器视为空白,第二个是。 因此,“”不能保证在特定的HTML标记中显示,而非易碎空间将始终显示。

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

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

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> 

@Zoidberg是正确的,例如:

 <h1>title</h1> <h2>date</h2> 

标题标记之间不会显示空格

 & nbsp ; 

会做空间:)

&nbsp; 应作为空白处理。

&nbsp;&nbsp; 应该作为两个空格来处理

''可以作为一个不感兴趣的空白处理

''+''可以作为一个单独的''来处理

有换行符时,使用$ bnsp时行不会中断; 因为这是一个“不间断的空间”。 如果你有某些产品名称或者这样的东西,那么这一点很重要,总是要写在一起。

如果您(必须)在数字中使用空格作为分隔符(如12344567),那么在法国显示12 344 567可能会很有趣。 如果没有这个数字的话,会非常难看。 testing:12 344 567

&nbsp; 是可堆叠的,这意味着您可以一起创build多个空格。

HTML只会parsing一个空格,然后放下剩下的空格。

如果你想要五个空格,你可以放置五个空格&nbsp;