题
如果我希望在看起来像三个空格的行中间有空格,我可以在HTML中使用什么,但如果行太长,仍然会被破坏?
常规空格会折叠(一系列空格看起来与单个空格相同),并且在不间断空格(<!> amp; nbsp)处,该行无法被破坏。
更新:我认为我真正想要的是<!>#65308; pre <!>#65310;仍然可以打破长行的标记(我需要显示源代码)。
解决方案
一个或多个em空格(<!> amp; emsp;)怎么样?当然,这取决于用户的字体大小。如果这在您的设计中不起作用,请考虑一个en空格(<!> amp; ensp;)。
您可能还想查看此各种空间表维基百科。
其他提示
我确实得到了确切的答案<!>#8217;正在寻找。我到处寻找这个答案,没有任何人建议完美的工作。所以,我想出了一个解决方案并尝试了它,并且它没有任何缺陷就可以了!
Garrow 实际上是正确的(他只是没有<!>#8217;解释它或一路走)。解决方案不是单独放
,而是放 <wbr>
。只需进行简单的搜索并替换并在每次<wbr>
之后添加<=>标记。效果很好!
<=>标签是所有主要浏览器都支持的一个鲜为人知的标签,它告诉浏览器只在需要时才在此处添加新行。
更新:我发现一个浏览器<!>#8217;完全正确地在<!>#8211; IE 8!他们实际上取出了<=>标签!我通过创建一个类:
来解决这个问题.wbr:before { content: "\200B" }
而不是用<=>替换<=>,请将其替换为以下内容:
<wbr><span class='wbr'></span>
在PHP中,这看起来像:
$text = str_replace(" "," <wbr><span class='wbr'></span>", $text);
唐<!>#8217;忘记添加课程。
显然这已经变得相当过分了,用所有这些替换了一个单独的空间,但它确实可以正常工作,因为我从来没有看到它对我起作用的标记。
如果这太乱了,另一个解决方案是为<=>交换双空格,然后是普通空格。这将替换<=>和普通空格,并在我的测试中工作。
在PHP中,这看起来像:
$text = str_replace(" "," ", $text);
希望这有帮助!我对此进行了足够的研究;我以为我应该传递它。
两个不间断空格之间的空格不会起作用吗?
<!><强>安培; NBSP; <!>安培; NBSP; 强>
<!> lt; wbr <!> gt; 怎么样?
如果您未定位到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'哦!
两个
后面跟一个常规空间怎么样? (据我所知)唯一的缺点是,如果换行自然落在常规空间,由于不间断的空格,你在前一行会有一些尾随空间,但我不知道我认为这会对页面的实际外观产生影响。
退后一步并询问你想要渲染的内容可能会更好。这个超宽空间意味着什么?
它为文本之间的左侧空格提供100px 空格示例
span style = <!> quot; margin-left:100px; <!> quot;
(N_N)