在段落的正文中插入一个字符

时间:2009-08-24 21:37:38

标签: c# asp.net

如果有人输入了很长的标题/句子,则该文本会在整个网页上显示。

有没有办法打破文本,继续到下一行?

使用溢出隐藏将隐藏文本。

我想我应该使用wbr标签。

我应该使用insert();方法吗?

string myText = "111111111111111111111111111111111111111111111111111111111111111111111111";

myText = myText.Insert(80, "<wbr/>");

不确定wbr标签是如何跨浏览器的!

3 个答案:

答案 0 :(得分:1)

严格来说,您应该使用零宽度空间(&#8203;)而不是<wbr>。但是,众所周知,Internet Explorer 6及更早版本不支持此功能(它们显示的是一个丑陋的盒子)。所以<wbr>可能是最安全的选择。除了......已知标准模式下的Internet Explorer 8不支持<wbr>,所以你在这里遇到了一个很好的难题。

您可以在quirksmode.org了解更多信息。

请注意HBoss的评论,除非你使用像Courier这样的固定宽度字体,否则很难预测在哪里打破。你应该注意他的建议并且经常打破每80个字符。 (并且不要让我开始组合角色。)

就ASP.NET而言,你确实可以使用Insert方法,但要注意何时需要插入多个:你需要做一些簿记(和{ {1}}也会被建议。)

答案 1 :(得分:1)

您可以使用正则表达式查找由空格/特殊字符包围的单词,并使用具有不同溢出属性的div / span包围它。

如果您使用<wbr>,请务必使用<nobr>包围该字词。

答案 2 :(得分:0)

我不确定你是否可以通过分割内容来解决这个问题,因为你不能保证中断在浏览器中统一适用。你有各种字体大小,宽度等。

通常当我看到内容扩展得太多时,它只是重叠在页面的其余部分上,或者设计者设置溢出,以便滚动内容。可能会有一些你可以使用的CSS技巧,但我不知道任何。

作为一种替代方法,您可以在某些字符之后插入空格,例如标点符号,而不是简单地在每个 x number 字符处插入换行符。这将确保内容在某些时候包装。