“ ”和“”有什么区别?
他们都是空间,但是有什么区别吗?
一个是非破坏性空间 ,另一个是经常性空间。 一个没有破坏的空间意味着该行不应该被包装在这一点,就像它不会被包裹在一个字的中间。
此外正如Svend在他的评论中所指出的那样,不破坏的空间并没有崩溃。
实体
产生一个不间断的空间,当你不想在这个位置自动换行时使用这个空间。 常规空间具有字符代码32,而非破坏空间具有字符代码160。
例如,当您将空格显示为千位分隔符时:1 234 567,则使用非分隔符空格,以便数字不能分隔在单独的行上。 如果您显示的是货币,并且金额与货币之间有一个空格:42 SEK,那么您使用一个不分段的空格,以便您不会在一行中获得金额,而在下一个货币中获得该货币。
除了这里的其他答案之外,不间断的空间也不会像常规的空间那样“折叠”。 例如,两者
<p>Word1 Word2</p>
和
<p>Word1 Word2</p>
在任何浏览器上都会呈现相同的效果
<p>Word1 Word2</p>
将呈现时保持空格。
不是一个例子的答案
示例#1:
<div style="width:45px; height:45px; border: solid thin red; overflow: visible"> Hello 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   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 ]</div>
@Zoidberg是正确的,例如:
<h1>title</h1> <h2>date</h2>
标题标记之间不会显示空格
& nbsp ;
会做空间:)
应作为空白处理。
应该作为两个空格来处理
''可以作为一个不感兴趣的空白处理
''+''可以作为一个单独的''来处理
有换行符时,使用$ bnsp时行不会中断; 因为这是一个“不间断的空间”。 如果你有某些产品名称或者这样的东西,那么这一点很重要,总是要写在一起。
如果您(必须)在数字中使用空格作为分隔符(如12344567),那么在法国显示12 344 567可能会很有趣。 如果没有这个数字的话,会非常难看。 testing:12 344 567
是可堆叠的,这意味着您可以一起创build多个空格。
HTML只会parsing一个空格,然后放下剩下的空格。
如果你想要五个空格,你可以放置五个空格