68

 是一个非换行空间,它表示一个没有换行的空白空间。

如果我使用

<p>&nbsp;</p>

我在两个段落之间有一个空间(更大的休息)。如果我使用

<p> </p>

我在两段之间只有一条新线(没有中断)。为什么?

4

3 回答 3

72

在 HTML 中,只包含普通空白字符的元素被认为是空的。仅包含正常空格字符的段落将具有零高度。不间断空格是一种特殊的空白字符,它被认为是无关紧要的,因此它可以用作非空段落的内容。

即使您考虑段落的 CSS 边距,由于“空”段落的高度为零,它的垂直边距也会折叠。这导致它没有高度和边距,使它看起来好像根本不存在。

于 2012-09-05T10:42:58.483 回答
7

解决方法怎么样?在我的例子中,我在 jQuery 变量中获取了 textarea 的值,并将 all 更改"<p>&nbsp"<p class="clear">clear 类以具有一定的高度和边距,如下例所示:

jQuery

tinyMCE.triggerSave();
var val = $('textarea').val();
val = val.replace(/<p>&nbsp/g, '<p class="clear">');

然后将 val 与新 val 一起保存到数据库中。

CSS

p.clear{height: 2px; margin-bottom: 3px;}

您可以根据需要调整高度和边距。由于 'p' 是一个display: 块元素。它应该给你预期的输出。

希望有帮助!

于 2014-08-02T11:32:19.050 回答
3

如果我了解您的问题,这应该可以

&emsp——em 空间;这应该是一个非常宽的空间,通常多达四个真实空间。&ensp——en 空间;这应该是一个有点宽的空间,大约是两个常规空间。&thinsp——这将是一个狭窄的空间,甚至比常规空间还要狭窄。

资料来源:http ://hea-www.harvard.edu/~fine/Tech/html-sentences.html

于 2016-03-05T20:40:19.247 回答