如果我希望在看起来像三个空格的行中间有空格,我可以在HTML中使用什么,但如果行太长,仍然可能会被破坏?
常规空白被折叠(一系列空格看起来与单个空格相同),并且在非破坏空间(& nbsp),该行无法被破坏。
更新:我认为我真正想要的是一个
标签仍然可以打破长线(我需要显示源代码)。
答案 0 :(得分:21)
我实际上有你正在寻找的确切答案。我到处寻找这个答案,没有任何人建议完美的工作。所以,我想出了一个解决方案并尝试了它,并且它没有任何缺陷就可以了!
Garrow实际上是正确的(他只是没有解释或一直采取行动)。解决方案不是单独放置
,而是放置 <wbr>
。只需进行简单的搜索并替换,并在每<wbr>
后添加
标记。效果很好!
<wbr>
标记是所有主流浏览器都支持的鲜为人知的标记,它告诉浏览器只在需要时才会在此处添加换行符。
更新:我发现一个浏览器在IE 8中无法正常工作!他们实际上取出了<wbr>
标签!我通过创建一个类:
.wbr:before { content: "\200B" }
而不是将
替换为 <wbr>
,请将其替换为以下内容:
<wbr><span class='wbr'></span>
在PHP中,这看起来像:
$text = str_replace(" "," <wbr><span class='wbr'></span>", $text);
不要忘记添加课程。
显然这已经变得相当过分,用所有这些替换了单个空间,但它确实可以正常工作,因为我从来没有看到它对我起作用的标记。
如果这太乱了,另一个解决办法就是为
交换双倍空格,后跟一个普通空格。这将替换
和普通空格,并在我的测试中起作用。
在PHP中,这看起来像:
$text = str_replace(" "," ", $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)
两个
后跟一个常规空间怎么样? (据我所知)唯一的缺点是,如果换行自然落在常规空间,由于不间断的空格,你在前一行会有一些尾随空间,但我不知道我认为这会对页面的实际外观产生影响。
答案 6 :(得分:0)
退后一步并询问你想要渲染的内容可能会更好。这个超宽空间意味着什么?
答案 7 :(得分:-1)
它为文本之间的左侧空格提供100px 空格示例
span style =“margin-left:100px;”
(N_N)