如果有人输入了很长的标题/句子,则该文本会在整个网页上显示。
有没有办法打破文本,继续到下一行?
使用溢出隐藏将隐藏文本。
我想我应该使用wbr标签。
我应该使用insert();方法吗?
即
string myText = "111111111111111111111111111111111111111111111111111111111111111111111111";
myText = myText.Insert(80, "<wbr/>");
不确定wbr标签是如何跨浏览器的!
答案 0 :(得分:1)
严格来说,您应该使用零宽度空间(​
)而不是<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 字符处插入换行符。这将确保内容在某些时候包装。