不间断空格的处理:<p> </p> vs. <p> </p>

问题描述 投票:0回答:4

&nbsp;
是非断行空格,表示不发生换行的空白空间。

如果我使用

<p>&nbsp;</p>

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

<p> </p>

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

html css space
4个回答
72
投票

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

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


7
投票

有什么解决方法吗? 在我的例子中,我获取了 jQuery 变量中文本区域的值,并将所有

"<p>&nbsp"
更改为
<p class="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: block 元素。它应该给你预期的输出。

希望有帮助!


3
投票

如果我理解你的问题,这应该可行

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

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


0
投票

**在此数据中** 

”*如何*可以获得实际数据***
© www.soinside.com 2019 - 2024. All rights reserved.