避免html元素之间的换行符

我有这个<td>元素:

 <td><i class="flag-bfh-ES"></i>&nbsp;+34&nbsp;666&nbsp;66&nbsp;66&nbsp;66</td> 

我希望把这个保存在一个单一的行,但这是我得到的:

在这里输入图像说明

正如你所看到的,国旗和电话号码是分开的。 &nbsp; 在电话号码的号码之间工作,而不是在国旗和电话号码之间。

我怎样才能确保渲染器没有引入任何换行符?

有几种方法可以防止内容中的换行符。 使用&nbsp; 是一种方式,在单词之间运行良好,但是在空单元和文本之间使用它却没有明确的效果。 这同样适用于使用图像作为图标的更合理和更易于访问的方法。

最强大的select是使用nobr标记,这是非标准的,但通用支持,即使在禁用CSS时也可以使用:

 <td><nobr><i class="flag-bfh-ES"></i> +34 666 66 66 66</nobr></td> 

(在这种情况下,您可以,但不必使用空格而不是空格。)

另一种方法是nowrap属性(不赞成/过时,但仍然工作正常,除了一些罕见的怪癖):

 <td nowrap><i class="flag-bfh-ES"></i> +34 666 66 66 66</td> 

然后是CSS方式,它在支持CSS的浏览器中工作,需要更多的代码:

 <style> .nobr { white-space: nowrap } </style> ... <td class=nobr><i class="flag-bfh-ES"></i> +34 666 66 66 66</td> 

这个td的CSS: white-space: nowrap; 应该解决它。

如果你需要几个单词或元素,但不能将它应用到整个TD或类似的,Span标签可以使用。

 <span style="white-space: nowrap">Text to break together</span> or <span class=nobr>Text to break together</span> 

如果您使用的是类版本,请记住按照接受的答案中的详细说明设置CSS。

如果<i>标签没有显示为一个块,并导致probelm,那么这应该工作:

<td style="white-space:nowrap;"><i class="flag-bfh-ES"></i>&nbsp;+34&nbsp;666&nbsp;66&nbsp;66&nbsp;66</td>