HTML中没有折叠但仍然(线)可破坏的空间?

时间:2009-03-03 06:42:36

标签: html whitespace

如果我希望在看起来像三个空格的行中间有空格,我可以在HTML中使用什么,但如果行太长,仍然可能会被破坏?

常规空白被折叠(一系列空格看起来与单个空格相同),并且在非破坏空间(& nbsp),该行无法被破坏。

更新:我认为我真正想要的是一个

标签仍然可以打破长线(我需要显示源代码)。

8 个答案:

答案 0 :(得分:21)

我实际上有你正在寻找的确切答案。我到处寻找这个答案,没有任何人建议完美的工作。所以,我想出了一个解决方案并尝试了它,并且它没有任何缺陷就可以了!

Garrow实际上是正确的(他只是没有解释或一直采取行动)。解决方案不是单独放置&nbsp;,而是放置&nbsp;<wbr>。只需进行简单的搜索并替换,并在每<wbr>后添加&nbsp;标记。效果很好!

<wbr>标记是所有主流浏览器都支持的鲜为人知的标记,它告诉浏览器只在需要时才会在此处添加换行符。

更新:我发现一个浏览器在IE 8中无法正常工作!他们实际上取出了<wbr>标签!我通过创建一个类:

来解决这个问题
.wbr:before { content: "\200B" }

而不是将&nbsp;替换为&nbsp;<wbr>,请将其替换为以下内容:

&nbsp;<wbr><span class='wbr'></span>

在PHP中,这看起来像:

$text = str_replace(" ","&nbsp;<wbr><span class='wbr'></span>", $text);

不要忘记添加课程。

显然这已经变得相当过分,用所有这些替换了单个空间,但它确实可以正常工作,因为我从来没有看到它对我起作用的标记。

如果这太乱了,另一个解决办法就是为&nbsp;交换双倍空格,后跟一个普通空格。这将替换&nbsp;和普通空格,并在我的测试中起作用。

在PHP中,这看起来像:

$text = str_replace("  ","&nbsp; ", $text);

希望这有帮助!我对此进行了足够的研究;我以为我应该传递它。

答案 1 :(得分:12)

一个或多个em空间(&amp; emsp;)怎么样?当然,这取决于用户的字体大小。如果这在您的设计中不起作用,请考虑使用en空格(&amp; ensp;)。

您可能还想查看维基百科上的this table of various spaces

答案 2 :(得分:4)

两个不间断空格之间的空格不会起作用吗?

<强>&安培; NBSP; &安培; NBSP;

答案 3 :(得分:3)

如果你是not targeting IE(8,标准模式除外):

<span style="white-space: pre-wrap">   </span>

对于IE,<span style="width:3ex"></span>在怪癖模式下工作,因此合并它们......

<span style="width:3ex;white-space:pre-wrap">   </span>

除了IE7标准外,似乎在我尝试过的任何地方都能正常工作。 D'哦!

答案 4 :(得分:3)

<wbr>怎么样?

答案 5 :(得分:2)

两个&nbsp;后跟一个常规空间怎么样? (据我所知)唯一的缺点是,如果换行自然落在常规空间,由于不间断的空格,你在前一行会有一些尾随空间,但我不知道我认为这会对页面的实际外观产生影响。

答案 6 :(得分:0)

退后一步并询问你想要渲染的内容可能会更好。这个超宽空间意味着什么?

答案 7 :(得分:-1)

它为文本之间的左侧空格提供100px  空格示例

span style =“margin-left:100px;”

(N_N)