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

Thi*_*ilo 18 html whitespace

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

常规空格会折叠(一系列空格看起来与单个空格相同),并且在非破坏空间( )处不会破坏该行.

更新:我认为我真正想要的是一个<pre>标签仍然可以打破长线(我需要显示源代码).

小智 21

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

Garrow实际上是正确的(他只是没有解释它或一直采取它).解决方案不是&nbsp;单独放,而是放&nbsp;<wbr>.只需进行简单的搜索并替换并<wbr>在每次之后添加标记&nbsp;.完美的工作!

<wbr>标签是在所有主流浏览器,告诉浏览器把这里换行只有在需要的时候支持一个鲜为人知的标签.

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

.wbr:before { content: "\200B" }
Run Code Online (Sandbox Code Playgroud)

和而不是替换&nbsp;&nbsp;<wbr>,用以下内容替换它:

&nbsp;<wbr><span class='wbr'></span>
Run Code Online (Sandbox Code Playgroud)

在PHP中,这看起来像:

$text = str_replace(" ","&nbsp;<wbr><span class='wbr'></span>", $text);
Run Code Online (Sandbox Code Playgroud)

别忘了添加课程.

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

如果这太乱了,另一个解决方案是交换双空格,&nbsp;然后是普通空格.这将是替代&nbsp;和普通空间,并在我的测试中工作.

在PHP中,这看起来像:

$text = str_replace("  ","&nbsp; ", $text);
Run Code Online (Sandbox Code Playgroud)

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


小智 12

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

您可能还想查看Wikipedia 上各种空格的表格.


Gor*_*ell 5

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