不间断空间的处理:<p>&nbsp; </ p>与<p> </ p>


67

&nbsp; 是一个不间断的空格,表示没有换行的空白空间。

如果我用

<p>&nbsp;</p>

我在两个段落之间有一个空格(较大的中断)。如果我用

<p> </p>

我在两个段落之间只有一个换行符(不间断)。为什么?


3
问题的一部分是您要在段落之间创建一个空的段落元素,而在段落之间获得间距的正确方法是使用CSS。
Markus Unterwaditzer'9

或者,<br />但是由于代码是由WYSISWG编辑器生成的,所以我对其影响不大。
抓手2012年

Answers:


71

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

即使您考虑在段落上使用CSS边距,由于“空”段落的高度为零,因此其垂直边距也会崩溃。这会导致它没有高度和边距,使其看起来好像根本就没有。


空意味着该元素将不会被表示?
抓手2012年

4
它会被表示,但不会占据空间,因为它的高度为0。
Claudiu Creanga

@ Nik-Lz它仍然存在于DOM中,这就是我“代表”的意思。
dev_willis '19

6

解决方法如何?在我的情况下,我将jQuery变量中的textarea值作为参数,并将所有更改"<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:块元素。它应该给您预期的输出。

希望有帮助!


2

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.