有人能告诉我一个简单空间(用键盘空格键创建)和
(HTML不间断空格)之间的区别是什么?
我之所以问这个是因为当我在页面上同时使用(简单空格和
)时,它们的行为方式不同。
在我的Web应用程序中,当我将一个简单的空格(带有键盘空格键)放入span
时,它没有高度或宽度(0px)但是当我将 
放入{{1}时它有一个高度和宽度。
当我使用span
标记尝试同样的事情时,发生了同样的问题。
在jsfiddle中你可以看到,当我使用一个简单的空格时,该元素没有高度(它总是div
),但是当我使用0px
时,它有一个高度。 / p>
答案 0 :(得分:4)
nbsp
代表不间断的空间,主要有两个不同之处:
使用正常的空白字符,如果没有水平空格,内容将被包围。因此,foo bar
可能会呈现为
foo
bar
而foo bar
将始终呈现为
foo bar
如果没有足够的水平空间,内容就会溢出。
浏览器可以决定修剪HTML元素内容开头或结尾的空格字符。这在specification:
中有所描述为了避免SGML换行规则的问题以及现有实现之间的不一致,作者不应该依赖用户代理在开始标记之后或紧接在结束标记之前立即渲染空白。
这意味着<div> foo bar </div>
被浏览器解释为<div>foo bar</div>
,因此<div> </div>
被解释为<div></div>
(即作为空元素)。
答案 1 :(得分:0)
嗯,
和简单空间之间存在差异。
指的是
Html中的非破坏空间意味着它不会破坏行的结尾,你可以在这里找到更好的解释
http://www.htmlbasictutor.ca/non-breaking-space.htm
期待空间如果你在你的项目中使用它多一次就会崩溃,你知道这是基本的差异,你也可以在那个链接中找到其他的。
答案 2 :(得分:0)
一个不间断的空间和一个正常的空间是不同的。一个不间断的空间就像一块磁铁,将单词或字符保持在空间的两侧,防止在其位置自动换行。 例如:2018年7月20日
与普通空间相比,不间断可以防止不间断,并且ASCII甚至有所不同。
不可中断空间的ASCII为160
正常空间的ASCII为32。